summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kochmański <daniel@turtleware.eu>2024-08-25 10:56:37 +0200
committerDaniel Kochmański <daniel@turtleware.eu>2024-09-02 13:38:46 +0200
commitb0fa35a42595cba23e21ffe8acfa04ab9669fd47 (patch)
tree0e3d0b586fe993603bfb4b2215ed21f33643e1c3
parent33cd8d44712c20c704e68dacb927cb9068ea1e79 (diff)
utilities: add internal and naive debug trace-like utility
-rw-r--r--Core/utilities/utilities.lisp14
1 files changed, 14 insertions, 0 deletions
diff --git a/Core/utilities/utilities.lisp b/Core/utilities/utilities.lisp
index c188e0ba..4e6344c0 100644
--- a/Core/utilities/utilities.lisp
+++ b/Core/utilities/utilities.lisp
@@ -786,3 +786,17 @@ be forms containing FORM."
(defmacro declmacro (name lambda-list)
(declare (ignore lambda-list))
`(quote ,name))
+
+(defvar *level* 1)
+(defun invoke-with-xxx (cont fmt &rest args)
+ (fresh-line *debug-io*)
+ (dotimes (x *level*)
+ (princ ">" *debug-io*))
+ (princ " " *debug-io*)
+ (apply #'format *debug-io* fmt args)
+ (let ((*level* (1+ *level*)))
+ (funcall cont)))
+
+(defmacro xxx ((fmt &rest args) &body body)
+ `(flet ((cont () ,@body))
+ (invoke-with-xxx #'cont ,fmt ,@args)))