Hello, "Basil L. Contovounesios" <conto...@tcd.ie> writes:
> Severity: minor > > 0. emacs -Q > 1. M-x toggle-debug-on-error RET > 2. Evaluate the following: > > (require 'org) > (org-string-display > (propertize " " 'display '(image :type svg > :file "/path/to/image.svg"))) > > This gives the following error backtrace: > > Debugger entered--Lisp error: (wrong-type-argument sequencep t) `org-string-display' doesn't exist anymore in master (Org 9.2). However, there is the same error with `org-string-width'. What is `org-string-width' supposed to do on your example? Probably return an error. > I realise that org-string-display is a relatively obscure function that > was probably not designed with image or other complex display properties > in mind, but AFAICT the following is a pretty obvious "fix", given that > the surrounding code expects 'value' to be a string or nil, but never t: > > diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el > index 583633605f..5ab069e6a2 100644 > --- a/lisp/org/org-macs.el > +++ b/lisp/org/org-macs.el > @@ -108,7 +108,7 @@ org-string-display > ;; string (face...). > (let* ((display (plist-get props 'display)) > (value (if (stringp display) display > - (cl-some #'stringp display)))) > + (cl-find-if #'stringp display)))) > (when value > (apply #'propertize > ;; Displayed string could contain > > > With this change, the return value of org-string-display does not really > make sense for images, but at least the function doesn't barf on complex > but valid display properties. WDYT? If `org-string-width' returns nil, it will ensue an error somewhere further in the code. So returning an error right here is better (or find a way to compute the width of an image in columns). As another data point, `string-width' returns 1 on your example, which is probably wrong. WDYT? Regards, -- Nicolas Goaziou