* expect.scm: (expect-regexec): new procedure, use it in
[bpt/guile.git] / ice-9 / boot-9.scm
index c1e27ab..11668b0 100644 (file)
 
 (define abort-hook '())
 
+;; defined in error-catching-loop as a closures.
+(define set-batch-mode?! #f)
+(define batch-mode? #f)
+
 (define (error-catching-loop thunk)
-  (let ((status #f))
+  (let ((status #f)
+       (interactive #t))
+    (set! set-batch-mode?! (lambda (arg)
+                            (cond (arg 
+                                   (set! interactive #f)
+                                   (restore-signals))
+                                  (#t
+                                   (error "sorry, not implemented")))))
+    (set! batch-mode? (lambda () (not interactive)))
     (define (loop first)
       (let ((next 
             (catch #t
                           (display "ABORT: "  (current-error-port))
                           (write args (current-error-port))
                           (newline (current-error-port))
-                          (if (and (not has-shown-debugger-hint?)
-                                   (not (memq 'backtrace
-                                              (debug-options-interface)))
-                                   (stack? the-last-stack))
-                              (begin
-                                (newline (current-error-port))
-                                (display
-                                 "Type \"(backtrace)\" to get more information.\n"
-                                 (current-error-port))
-                                (set! has-shown-debugger-hint? #t)))
+                          (if interactive
+                              (if (and (not has-shown-debugger-hint?)
+                                       (not (memq 'backtrace
+                                                  (debug-options-interface)))
+                                       (stack? the-last-stack))
+                                  (begin
+                                    (newline (current-error-port))
+                                    (display
+                                     "Type \"(backtrace)\" to get more information.\n"
+                                     (current-error-port))
+                                    (set! has-shown-debugger-hint? #t)))
+                              (primitive-exit 1))
                           (set! stack-saved? #f)))
 
                        (else