Selaa lähdekoodia

ox: Small fix to cell width caching mechanism

* lisp/ox.el (org-export-table-cell-width): Be sure to use cache even
  when stored value is nil.
Nicolas Goaziou 12 vuotta sitten
vanhempi
commit
4daf9d60d9
1 muutettua tiedostoa jossa 20 lisäystä ja 20 poistoa
  1. 20 20
      lisp/ox.el

+ 20 - 20
lisp/ox.el

@@ -4481,26 +4481,26 @@ same column as TABLE-CELL, or nil."
 				     (plist-put info :table-cell-width-cache
 						(make-hash-table :test 'equal)))
 			       :table-cell-width-cache)))
-	 (key (cons table column)))
-    (or (let ((cached (gethash key cache 'no-result)))
-	  (and (not (eq cached 'no-result)) cached))
-	(let (cookie-width)
-	  (dolist (row (org-element-contents table)
-		       (puthash key cookie-width cache))
-	    (when (org-export-table-row-is-special-p row info)
-	      ;; In a special row, try to find a width cookie at COLUMN.
-	      (let* ((value (org-element-contents
-			     (elt (org-element-contents row) column)))
-		     (cookie (car value)))
-		;; The following checks avoid expanding unnecessarily the
-		;; cell with `org-export-data'
-		(when (and value
-			   (not (cdr value))
-			   (stringp cookie)
-			   (string-match "\\`<[lrc]?\\([0-9]+\\)?>\\'" cookie)
-			   (match-string 1 cookie))
-		  (setq cookie-width
-			(string-to-number (match-string 1 cookie)))))))))))
+	 (key (cons table column))
+	 (value (gethash key cache 'no-result)))
+    (if (not (eq value 'no-result)) value
+      (let (cookie-width)
+	(dolist (row (org-element-contents table)
+		     (puthash key cookie-width cache))
+	  (when (org-export-table-row-is-special-p row info)
+	    ;; In a special row, try to find a width cookie at COLUMN.
+	    (let* ((value (org-element-contents
+			   (elt (org-element-contents row) column)))
+		   (cookie (car value)))
+	      ;; The following checks avoid expanding unnecessarily
+	      ;; the cell with `org-export-data'.
+	      (when (and value
+			 (not (cdr value))
+			 (stringp cookie)
+			 (string-match "\\`<[lrc]?\\([0-9]+\\)?>\\'" cookie)
+			 (match-string 1 cookie))
+		(setq cookie-width
+		      (string-to-number (match-string 1 cookie)))))))))))
 
 (defun org-export-table-cell-alignment (table-cell info)
   "Return TABLE-CELL contents alignment.