From: Nicolas Goaziou Date: Mon, 20 May 2013 09:33:11 +0000 (+0200) Subject: ox: Small fix to cell width caching mechanism X-Git-Tag: release_8.0.4~60 X-Git-Url: https://repo.or.cz/w/org-mode.git/commitdiff_plain/4daf9d60d913da6d4d086b05b38974779859a52d 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. --- diff --git a/lisp/ox.el b/lisp/ox.el index 675261237..5c8dfddbc 100644 --- a/lisp/ox.el +++ b/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.