summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/edebug.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-05-02 13:55:56 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-05-02 13:55:56 +0200
commitf639fa9f9e2acfe9d02e2afc57f7a2cc96390f5f (patch)
treec989af14a1f610ce4fc7b282f3c57a1c2fb3b570 /lisp/emacs-lisp/edebug.el
parentee913faf9a5d266be41b33556c90b26f55d18013 (diff)
downloademacs-f639fa9f9e2acfe9d02e2afc57f7a2cc96390f5f.tar.gz
Make non-recursive error messages in edebug prettier
* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Make the error message (when recursive debugging is off) prettier.
Diffstat (limited to 'lisp/emacs-lisp/edebug.el')
-rw-r--r--lisp/emacs-lisp/edebug.el27
1 files changed, 19 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 85545f9f351..d8b0a13c305 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3712,14 +3712,25 @@ Return the result of the last expression."
If interactive, prompt for the expression.
Print result in minibuffer."
(interactive (list (read--expression "Eval: ")))
- (princ
- (edebug-outside-excursion
- (let ((result (if debug-allow-recursive-debug
- (edebug-eval expr)
- (edebug-safe-eval expr))))
- (values--store-value result)
- (concat (edebug-safe-prin1-to-string result)
- (eval-expression-print-format result))))))
+ (let* ((errored nil)
+ (result
+ (edebug-outside-excursion
+ (let ((result (if debug-allow-recursive-debug
+ (edebug-eval expr)
+ (condition-case err
+ (edebug-eval expr)
+ (error
+ (setq errored
+ (format "%s: %s"
+ (get (car err) 'error-message)
+ (car (cdr err)))))))))
+ (unless errored
+ (values--store-value result)
+ (concat (edebug-safe-prin1-to-string result)
+ (eval-expression-print-format result)))))))
+ (if errored
+ (message "Error: %s" errored)
+ (princ result))))
(defun edebug-eval-last-sexp (&optional no-truncate)
"Evaluate sexp before point in the outside environment.