Mercurial > emacs
changeset 55799:85609e1fa661
(eval-expression-print-format): New fun.
(eval-expression): Print additionally the value returned by
`eval-expression-print-format'.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Fri, 28 May 2004 21:00:14 +0000 |
parents | a1bb695e9a0c |
children | c9243f2a022c |
files | lisp/simple.el |
diffstat | 1 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Fri May 28 20:59:14 2004 +0000 +++ b/lisp/simple.el Fri May 28 21:00:14 2004 +0000 @@ -785,6 +785,23 @@ :type 'boolean :version "21.1") +(defun eval-expression-print-format (value) + "Format VALUE as a result of evaluated expression. +Return a formatted string which is displayed in the echo area +in addition to the value printed by prin1 in functions which +display the result of expression evaluation." + (if (and (integerp value) + (or (not (eq this-command 'eval-last-sexp)) + (eq this-command last-command) + (and (boundp 'edebug-active) edebug-active))) + (let ((char-string + (if (or (and (boundp 'edebug-active) edebug-active) + (eq this-command 'eval-last-sexp)) + (prin1-char value)))) + (if char-string + (format " (0%o, 0x%x) = %s" value value char-string) + (format " (0%o, 0x%x)" value value))))) + ;; We define this, rather than making `eval' interactive, ;; for the sake of completion of names like eval-region, eval-current-buffer. (defun eval-expression (eval-expression-arg @@ -819,7 +836,10 @@ (with-no-warnings (let ((standard-output (current-buffer))) (eval-last-sexp-print-value (car values)))) - (prin1 (car values) t)))) + (prog1 + (prin1 (car values) t) + (let ((str (eval-expression-print-format (car values)))) + (if str (princ str t))))))) (defun edit-and-eval-command (prompt command) "Prompting with PROMPT, let user edit COMMAND and eval result.