Merge pull request #70 from philburk/ignoreds
[pforth] / csrc / pf_inner.c
index 57559bd..1446356 100644 (file)
@@ -49,6 +49,7 @@
 #define M_DUP    PUSH_TOS;
 #define M_DROP   { TOS = M_POP; }
 
 #define M_DUP    PUSH_TOS;
 #define M_DROP   { TOS = M_POP; }
 
+#define ASCII_EOT   (0x04)
 
 /***************************************************************
 ** Macros for Floating Point stack access.
 
 /***************************************************************
 ** Macros for Floating Point stack access.
@@ -211,8 +212,8 @@ static int UdIsUint64( ucell_t Lo, ucell_t Hi )
         : Hi == 0);
 }
 
         : Hi == 0);
 }
 
-static const char *pfSelectFileModeCreate(cell_t fam );
-static const char *pfSelectFileModeOpen(cell_t fam );
+static const char *pfSelectFileModeCreate( cell_t fam );
+static const char *pfSelectFileModeOpen( cell_t fam );
 
 /**************************************************************/
 static const char *pfSelectFileModeCreate( cell_t fam )
 
 /**************************************************************/
 static const char *pfSelectFileModeCreate( cell_t fam )
@@ -1264,6 +1265,9 @@ DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
         case ID_KEY:
             PUSH_TOS;
             TOS = ioKey();
         case ID_KEY:
             PUSH_TOS;
             TOS = ioKey();
+            if (TOS == ASCII_EOT) {
+                M_THROW(THROW_BYE);
+            }
             endcase;
 
 #ifndef PF_NO_SHELL
             endcase;
 
 #ifndef PF_NO_SHELL