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.
This commit is contained in:
Ihor Radchenko 2022-01-22 23:02:04 +08:00
parent 3fba34900e
commit 2e3566e1e9
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 10 additions and 1 deletions

View File

@ -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)