Elisp `eldoc': fix "Invalid format operation %-"

In `+emacs-lisp-append-value-to-eldoc-a', if the `frame-width' of the minibuffer
is smaller than the length of the documentation + " [...]" + 1, a negative
maximum %s bound is passed, causing the error in the title.

Fix this by clamping the computed LIMIT to 0.
This commit is contained in:
Nikita Bloshchanevich 2020-11-29 09:32:52 +01:00
parent 92c9127b86
commit 49f4461daa

View file

@ -105,7 +105,7 @@ employed so that flycheck still does *some* helpful linting.")
(str (symbol-value sym)) (str (symbol-value sym))
(str (prin1-to-string str)) (str (prin1-to-string str))
(limit (- (frame-width) (length ret) (length truncated) 1))) (limit (- (frame-width) (length ret) (length truncated) 1)))
(format (format "%%0.%ds%%s" limit) (format (format "%%0.%ds%%s" (min limit 0))
(propertize str 'face 'warning) (propertize str 'face 'warning)
(if (< (length str) limit) "" truncated)))))) (if (< (length str) limit) "" truncated))))))