]> git.eshelyaron.com Git - emacs.git/commitdiff
trace.el: use cl-print
authorJoão Távora <joaotavora@gmail.com>
Wed, 20 Dec 2023 18:11:53 +0000 (12:11 -0600)
committerJoão Távora <joaotavora@gmail.com>
Thu, 21 Dec 2023 00:57:18 +0000 (18:57 -0600)
Any non-trivial EIEO object in particular is impossible to read in the
*trace-output* buffer without this.  Functions, hash-tables, etc now
print as they do in backtrace buffers.

* lisp/emacs-lisp/trace.el (cl-print): Require it
(trace-entry-message, trace-exit-message): Use cl-prin1-to-string

lisp/emacs-lisp/trace.el

index d802648d8ab8bda73d614953fa5534f2463b3c0d..3881fe66eb468a1630d87bae1ee87eedd5186899 100644 (file)
 
 ;;; Code:
 
+(require 'cl-print)
+
 (defgroup trace nil
   "Tracing facility for Emacs Lisp functions."
   :prefix "trace-"
@@ -168,13 +170,13 @@ and CONTEXT is a string describing the dynamic context (e.g. values of
 some global variables)."
   (let ((print-circle t)
         (print-escape-newlines t))
-    (format "%s%s%d -> %S%s\n"
+    (format "%s%s%d -> %s%s\n"
             (mapconcat #'char-to-string (make-string (max 0 (1- level)) ?|) " ")
             (if (> level 1) " " "")
             level
             ;; FIXME: Make it so we can click the function name to jump to its
             ;; definition and/or untrace it.
-            (cons function args)
+            (cl-prin1-to-string (cons function args))
             context)))
 
 (defun trace-exit-message (function level value context)
@@ -184,13 +186,13 @@ and CONTEXT is a string describing the dynamic context (e.g. values of
 some global variables)."
   (let ((print-circle t)
         (print-escape-newlines t))
-    (format "%s%s%d <- %s: %S%s\n"
+    (format "%s%s%d <- %s: %s%s\n"
             (mapconcat 'char-to-string (make-string (1- level) ?|) " ")
             (if (> level 1) " " "")
             level
             function
             ;; Do this so we'll see strings:
-            value
+            (cl-prin1-to-string value)
             context)))
 
 (defvar trace--timer nil)