* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
If the parameter of :eval is a string then read, evaluate and print
the result. This was always the intention and is documented behaviour.
do
(cl-case type
(:eval
+ (insert " ")
(if (stringp value)
- (insert " " value "\n")
- (insert " ")
- (prin1 value (current-buffer))
- (insert "\n")
- (insert " " double-arrow " ")
- (prin1 (eval value) (current-buffer))
- (insert "\n")))
+ (insert value)
+ (prin1 value (current-buffer)))
+ (insert "\n " double-arrow " ")
+ (let ((expr (if (stringp value)
+ (car (read-from-string value))
+ value)))
+ (prin1 (eval expr) (current-buffer)))
+ (insert "\n"))
(:no-eval*
(if (stringp value)
(insert " " value "\n")