summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/system/repl/repl.scm16
1 files changed, 13 insertions, 3 deletions
diff --git a/module/system/repl/repl.scm b/module/system/repl/repl.scm
index 21998ba5d..9e364ddc5 100644
--- a/module/system/repl/repl.scm
+++ b/module/system/repl/repl.scm
@@ -121,10 +121,20 @@
(cond
((eqv? exp *unspecified*)) ; read error, pass
((eq? exp meta-command-token)
- (catch 'quit
- (lambda () (meta-command repl))
+ (catch #t
+ (lambda ()
+ (meta-command repl))
(lambda (k . args)
- (abort args))))
+ (if (eq? k 'quit)
+ (abort args)
+ (begin
+ (format #t "While executing meta-command:~%" string)
+ (pmatch args
+ ((,subr ,msg ,args . ,rest)
+ (display-error #f (current-output-port) subr msg args rest))
+ (else
+ (format #t "ERROR: Throw to key `~a' with args `~s'.\n" key args)))
+ (force-output))))))
((eof-object? exp)
(newline)
(abort '()))