diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2019-02-18 17:03:25 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2019-02-18 17:03:25 +0100 |
commit | d64704343120992819c7aa8e1b4b78e35718419d (patch) | |
tree | b5aa18189298f63135887faf0de6e5de6aa6b487 | |
parent | 126a37c36cf8de07169b7bf1e0e385ae5bb2fe3c (diff) | |
download | org-mode-d64704343120992819c7aa8e1b4b78e35718419d.tar.gz |
org-table: Fix last commit
* lisp/org-table.el (org-table--shrink-field): Properly shrink empty
and blank fields.
-rw-r--r-- | lisp/org-table.el | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lisp/org-table.el b/lisp/org-table.el index bf37679..03fcf61 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 |