]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/listener/listener.factor
listener: enable ctrl-break interruption only while user code is running
[factor.git] / basis / listener / listener.factor
index 5099c5ab905299966e028a2132c7c4a2a3edf44e..4c792ae67bba647cee06528e4103237de12b33d7 100644 (file)
@@ -24,6 +24,10 @@ H{
 M: object prompt.
     nip prompt-style get-global format bl flush ;
 
+: with-ctrl-break ( quot -- )
+    enable-ctrl-break
+    [ disable-ctrl-break ] [ ] cleanup ; inline
+
 : parse-lines-interactive ( lines -- quot/f )
     [ parse-lines ] with-compilation-unit ;
 
@@ -120,7 +124,7 @@ t error-summary? set-global
 
     [
         read-quot [
-            '[ datastack _ with-datastack ]
+            '[ [ datastack _ with-datastack ] with-ctrl-break ]
             [ call-error-hook datastack ]
             recover
         ] [ return ] if*