gpgscm: Make it impossible to catch '*interpreter-exit*'.
authorJustus Winter <justus@g10code.com>
Tue, 11 Jul 2017 14:07:39 +0000 (16:07 +0200)
committerJustus Winter <justus@g10code.com>
Thu, 13 Jul 2017 10:00:55 +0000 (12:00 +0200)
* tests/gpgscm/init.scm (throw'): Make it impossible to catch
'*interpreter-exit*'.  This fixes 'exit' (and with it 'fail') inside
'catch' statements.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgscm/init.scm

index b78a59e..66bec0f 100644 (file)
 ;; This is used by the vm to throw exceptions.
 (define (throw' message args history)
   (cond
-   ((more-handlers?)
-    ((pop-handler) message args history))
    ((and args (list? args) (= 2 (length args))
         (equal? *interpreter-exit* (car args)))
     (*run-atexit-handlers*)
     (quit (cadr args)))
+   ((more-handlers?)
+    ((pop-handler) message args history))
    (else
     (display message)
     (when (and args (not (null? args)))