branch: externals/org
commit 2e3566e1e9bd302b2fa47854df5d146ad0f68045
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>
org-string-width: Handle undefined behaviour in older Emacs
* lisp/org-macs.el (org-string-width): Force older Emacs treating
invisible text with ellipsis as zero-width. Newer Emacs versions do
exactly this.
---
lisp/org-macs.el | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 188168cdce..e56a234d32 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -926,7 +926,16 @@ Return width in pixels when PIXELS is non-nil."
(with-temp-buffer
(setq-local display-line-numbers nil)
(setq-local buffer-invisibility-spec
- current-invisibility-spec)
+ (if (listp current-invisibility-spec)
+ (mapcar (lambda (el)
+ ;; Consider elipsis to have 0 width.
+ ;; It is what Emacs 28+ does, but we have
+ ;; to force it in earlier Emacs versions.
+ (if (and (consp el) (cdr el))
+ (list (car el))
+ el))
+ current-invisibility-spec)
+ current-invisibility-spec))
(setq-local char-property-alias-alist
current-char-property-alias-alist)
(let (pixel-width symbol-width)