Browse Source

org-table: Fix empty field narrowing

* lisp/org-table.el (org-table--shrink-field): Fix empty field
  narrowing.

Reported-by: Nick Helm <nick@tenpoint.co.nz>
<http://lists.gnu.org/r/emacs-orgmode/2019-02/msg00214.html>
Nicolas Goaziou 4 months ago
parent
commit
6a9e847dec
1 changed files with 7 additions and 4 deletions
  1. 7 4
      lisp/org-table.el

+ 7 - 4
lisp/org-table.el

@@ -3946,11 +3946,14 @@ already hidden."
 	   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)
+     (let ((w (org-string-width (buffer-substring start end)))
+	   ;; We really want WIDTH + 2 whitespace, to include blanks
+	   ;; around fields.
+	   (full (+ 2 width)))
+       (if (<= w full)
 	   (org-table--make-shrinking-overlay
-	    (1- end) end (make-string (- (+ width 2) w) ?\s) "")
-	 (org-table--make-shrinking-overlay (- end (- w width 1)) end "" "")))))
+	    (1- end) end (make-string (- full w) ?\s) "")
+	 (org-table--make-shrinking-overlay (- end (- w full) 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