emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master f639fa9f9e 1/2: Make non-recursive error messages in edebug prett


From: Lars Ingebrigtsen
Subject: master f639fa9f9e 1/2: Make non-recursive error messages in edebug prettier
Date: Mon, 2 May 2022 07:59:32 -0400 (EDT)

branch: master
commit f639fa9f9e2acfe9d02e2afc57f7a2cc96390f5f
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    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.
---
 lisp/emacs-lisp/edebug.el | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 85545f9f35..d8b0a13c30 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]