hmsl: support EOT to force BYE
[pforth] / csrc / pfcompil.c
index b618c9f..a3f44f3 100644 (file)
@@ -981,7 +981,7 @@ ThrowCode ffIncludeFile( FileStream *InputFile )
 ***************************************************************/
 Err ffPushInputStream( FileStream *InputFile )
 {
 ***************************************************************/
 Err ffPushInputStream( FileStream *InputFile )
 {
-    cell_t Result = 0;
+    Err Result = 0;
     IncludeFrame *inf;
 
 /* Push current input state onto special include stack. */
     IncludeFrame *inf;
 
 /* Push current input state onto special include stack. */
@@ -1158,7 +1158,11 @@ cell_t ffRefill( void )
     /* ACCEPT is deferred so we call it through the dictionary. */
         PUSH_DATA_STACK( gCurrentTask->td_SourcePtr );
         PUSH_DATA_STACK( TIB_SIZE );
     /* ACCEPT is deferred so we call it through the dictionary. */
         PUSH_DATA_STACK( gCurrentTask->td_SourcePtr );
         PUSH_DATA_STACK( TIB_SIZE );
-        pfCatch( gAcceptP_XT );
+        ThrowCode throwCode = pfCatch( gAcceptP_XT );
+        if (throwCode) {
+            Result = throwCode;
+            goto error;
+        }
         Num = POP_DATA_STACK;
         if( Num < 0 )
         {
         Num = POP_DATA_STACK;
         if( Num < 0 )
         {