summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2004-05-28 21:00:14 +0000
committerJuri Linkov <juri@jurta.org>2004-05-28 21:00:14 +0000
commitfa219ebdf78561d9f74619522ab9c70bc1badafa (patch)
treee52f8a475969a161e9b75596ae8ebf12276e9b38 /lisp
parentb40ea20a66404a42ee11d2690b8aa8657fba3388 (diff)
downloademacs-fa219ebdf78561d9f74619522ab9c70bc1badafa.tar.gz
(eval-expression-print-format): New fun.
(eval-expression): Print additionally the value returned by `eval-expression-print-format'.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/simple.el22
1 files changed, 21 insertions, 1 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index 1cf3601b5b1..c72b6a929de 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -785,6 +785,23 @@ If nil, don't change the value of `debug-on-error'."
: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 @@ the echo area."
(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.