Make the eval-in-debug error message prettier in non-recursive errors

* lisp/emacs-lisp/debug.el (debugger-eval-expression): Make the
error message (when recursive debugging is off) prettier.
This commit is contained in:
Lars Ingebrigtsen 2022-05-02 13:59:11 +02:00
parent f639fa9f9e
commit bcdcaf0219

View 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")