]> git.eshelyaron.com Git - emacs.git/commitdiff
Make the eval-in-debug error message prettier in non-recursive errors
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 2 May 2022 11:59:11 +0000 (13:59 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 2 May 2022 11:59:11 +0000 (13:59 +0200)
* lisp/emacs-lisp/debug.el (debugger-eval-expression): Make the
error message (when recursive debugging is off) prettier.

lisp/emacs-lisp/debug.el

index 91e9b0716d0758d6cad6f8f702de0a7aebb16cbc..6c172d6c31da98c55df743b541f5e2fb6eeb71c3 100644 (file)
@@ -539,17 +539,23 @@ The environment used is the one when entering the activation frame at point."
                       (error 0)))) ;; If on first line.
        (base (debugger--backtrace-base)))
     (debugger-env-macro
-      (let ((val (if debug-allow-recursive-debug
-                     (backtrace-eval exp nframe base)
-                   (condition-case err
-                       (backtrace-eval exp nframe base)
-                     (error (format "%s: %s"
-                                    (get (car err) 'error-message)
-                                   (car (cdr err))))))))
-        (prog1
-            (debugger--print val t)
-          (let ((str (eval-expression-print-format val)))
-            (if str (princ str t))))))))
+      (let* ((errored nil)
+             (val (if debug-allow-recursive-debug
+                      (backtrace-eval exp nframe base)
+                    (condition-case err
+                        (backtrace-eval exp nframe base)
+                      (error (setq errored
+                                   (format "%s: %s"
+                                           (get (car err) 'error-message)
+                                          (car (cdr err)))))))))
+        (if errored
+            (progn
+              (message "Error: %s" errored)
+              nil)
+          (prog1
+              (debugger--print val t)
+            (let ((str (eval-expression-print-format val)))
+              (if str (princ str t)))))))))
 
 (define-obsolete-function-alias 'debugger-toggle-locals
   'backtrace-toggle-locals "28.1")