From d64704343120992819c7aa8e1b4b78e35718419d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 18 Feb 2019 17:03:25 +0100 Subject: [PATCH] org-table: Fix last commit * lisp/org-table.el (org-table--shrink-field): Properly shrink empty and blank fields. --- lisp/org-table.el | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lisp/org-table.el b/lisp/org-table.el index bf3767919..03fcf612d 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -3936,14 +3936,21 @@ the column again. Return a list of overlays hiding the field, or nil if field is already hidden." (cond - ((org-table--shrunk-field) nil) ;already shrunk: bail out - ((or (= 0 width) ;shrink to one character - (>= 1 (org-string-width (buffer-substring start end)))) + ((= start end) nil) ;no field to narrow + ((org-table--shrunk-field) nil) ;already shrunk + ((= 0 width) ;shrink to one character (list (org-table--make-shrinking-overlay start end "" (if (eq 'hline contents) "" contents)))) - ((eq contents 'hline) ;no contents to hide + ((eq contents 'hline) (list (org-table--make-shrinking-overlay - start end (make-string (max 0 (1+ width)) ?-) ""))) + start end (make-string (1+ width) ?-) ""))) + ((equal contents "") ;no contents to hide + (list + (let ((w (org-string-width (buffer-substring start end)))) + (if (> width w) + (org-table--make-shrinking-overlay + (1- end) end (make-string (- (+ width 2) w) ?\s) "") + (org-table--make-shrinking-overlay (- end (- w width 1)) end "" ""))))) (t ;; If the field is not empty, display exactly WIDTH characters. ;; It can mean to partly hide the field, or extend it with virtual