summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/debug-early.el
diff options
context:
space:
mode:
authorYuan Fu <casouri@gmail.com>2022-05-07 01:57:39 -0700
committerYuan Fu <casouri@gmail.com>2022-05-07 01:57:39 -0700
commit82d5e902af68695481b8809e511a7913ef9a75aa (patch)
treee6a366278590e8906a9282d04e48de2061b6fe3f /lisp/emacs-lisp/debug-early.el
parent84847cad82e3b667c82f411627cd58d236f55e84 (diff)
parent293a97d61e1977440f96b7fc91f281a06250ea72 (diff)
downloademacs-82d5e902af68695481b8809e511a7913ef9a75aa.tar.gz
emacs-82d5e902af68695481b8809e511a7913ef9a75aa.tar.bz2
emacs-82d5e902af68695481b8809e511a7913ef9a75aa.zip
; Merge from master.
Diffstat (limited to 'lisp/emacs-lisp/debug-early.el')
-rw-r--r--lisp/emacs-lisp/debug-early.el44
1 files changed, 24 insertions, 20 deletions
diff --git a/lisp/emacs-lisp/debug-early.el b/lisp/emacs-lisp/debug-early.el
index 85ed5f2176c..4f1f4b81557 100644
--- a/lisp/emacs-lisp/debug-early.el
+++ b/lisp/emacs-lisp/debug-early.el
@@ -35,30 +35,34 @@
(defalias 'debug-early-backtrace
#'(lambda ()
- "Print a trace of Lisp function calls currently active.
+ "Print a trace of Lisp function calls currently active.
The output stream used is the value of `standard-output'.
This is a simplified version of the standard `backtrace'
function, intended for use in debugging the early parts
of the build process."
- (princ "\n")
- (mapbacktrace
- #'(lambda (evald func args _flags)
- (let ((args args))
- (if evald
- (progn
- (princ " ")
- (prin1 func)
- (princ "("))
- (progn
- (princ " (")
- (setq args (cons func args))))
- (if args
- (while (progn
- (prin1 (car args))
- (setq args (cdr args)))
- (princ " ")))
- (princ ")\n"))))))
+ (princ "\n")
+ (let ((print-escape-newlines t)
+ (print-escape-control-characters t)
+ (print-escape-nonascii t)
+ (prin1 (if (fboundp 'cl-prin1) #'cl-prin1 #'prin1)))
+ (mapbacktrace
+ #'(lambda (evald func args _flags)
+ (let ((args args))
+ (if evald
+ (progn
+ (princ " ")
+ (funcall prin1 func)
+ (princ "("))
+ (progn
+ (princ " (")
+ (setq args (cons func args))))
+ (if args
+ (while (progn
+ (funcall prin1 (car args))
+ (setq args (cdr args)))
+ (princ " ")))
+ (princ ")\n")))))))
(defalias 'debug-early
#'(lambda (&rest args)
@@ -76,7 +80,7 @@ superseded by `debug' after enough Lisp has been loaded to
support the latter, except in batch mode which always uses
`debug-early'.
-(In versions of Emacs prior to Emacs 29, no backtrace was
+\(In versions of Emacs prior to Emacs 29, no backtrace was
available before `debug' was usable.)"
(princ "\nError: ")
(prin1 (car (car (cdr args)))) ; The error symbol.