]> git.donarmstrong.com Git - lilypond.git/blobdiff - guile18/lang/elisp/internals/trace.scm
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / lang / elisp / internals / trace.scm
diff --git a/guile18/lang/elisp/internals/trace.scm b/guile18/lang/elisp/internals/trace.scm
new file mode 100644 (file)
index 0000000..0dd92ec
--- /dev/null
@@ -0,0 +1,28 @@
+(define-module (lang elisp internals trace)
+  #:export (trc trc-syms trc-all trc-none))
+
+(define *syms* #f)
+
+(define (trc-syms . syms)
+  (set! *syms* syms))
+
+(define (trc-all)
+  (set! *syms* #f))
+
+(define (trc-none)
+  (set! *syms* '()))
+
+(define (trc . args)
+  (let ((sym (car args))
+       (args (cdr args)))
+    (if (or (and *syms*
+                (memq sym *syms*))
+           (not *syms*))
+       (begin
+         (write sym)
+         (display ": ")
+         (write args)
+         (newline)))))
+
+;; Default to no tracing.
+(trc-none)