diff --git a/scheme/ikarus.cafe.ss b/scheme/ikarus.cafe.ss index f2a64b9..d0fe390 100644 --- a/scheme/ikarus.cafe.ss +++ b/scheme/ikarus.cafe.ss @@ -38,19 +38,26 @@ description: Be specific about what the error-port is |# (library (ikarus cafe) - (export new-cafe) + (export new-cafe waiter-prompt-string) (import (only (rnrs) with-exception-handler) - (except (ikarus) new-cafe)) + (except (ikarus) new-cafe waiter-prompt-string)) (define eval-depth 0) + (define waiter-prompt-string + (make-parameter ">" + (lambda (x) + (if (string? x) + x + (die 'waiter-prompt-string "not a string" x))))) + (define display-prompt (lambda (i) (if (fx= i eval-depth) (display " " (console-output-port)) (begin - (display ">" (console-output-port)) + (display (waiter-prompt-string) (console-output-port)) (display-prompt (fx+ i 1)))))) (define (print-ex ex) diff --git a/scheme/last-revision b/scheme/last-revision index 4ac7a82..ac86b8c 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1856 +1857 diff --git a/scheme/makefile.ss b/scheme/makefile.ss index 6348e99..df021aa 100755 --- a/scheme/makefile.ss +++ b/scheme/makefile.ss @@ -389,6 +389,7 @@ [assembler-output i] [optimizer-output i] [new-cafe i] + [waiter-prompt-string i] [expand i] [core-expand i] [expand/optimize i]