summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-02-19 17:05:56 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-02-19 17:05:56 +0100
commit6a9e847dec3b7bd00b5451fad14310c17edf022e (patch)
tree88b3ef26c57b61139f85d39fcd36eb6efaec4aff
parent6b8fb446b6e04b6b488c90113c28acba7d4e1917 (diff)
downloadorg-mode-6a9e847dec3b7bd00b5451fad14310c17edf022e.tar.gz
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>
-rw-r--r--lisp/org-table.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 03fcf61..0790387 100644
--- a/lisp/org-table.el
+++ b/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