Zero initialize BYE-CODE (#139)
[debian/pforth] / csrc / pf_core.c
index 67a9f70bd257426b2bb0a3d6320f2dca4f5835c3..d5bd85fc3cc88079334212cc42321b2af049d521 100644 (file)
@@ -55,11 +55,14 @@ ExecToken       gAcceptP_XT;         /* XT of ACCEPT */
 /* Depth of data stack when colon called. */
 cell_t          gDepthAtColon;
 
-/* Global Forth variables. */
+/* Global Forth variables.
+* These must be initialized in pfInit below.
+*/
 cell_t          gVarContext;      /* Points to last name field. */
 cell_t          gVarState;        /* 1 if compiling. */
 cell_t          gVarBase;         /* Numeric Base. */
-cell_t          gVarEcho;           /* Echo input. */
+cell_t          gVarByeCode;      /* Echo input. */
+cell_t          gVarEcho;         /* Echo input. */
 cell_t          gVarTraceLevel;   /* Trace Level for Inner Interpreter. */
 cell_t          gVarTraceStack;   /* Dump Stack each time if true. */
 cell_t          gVarTraceFlags;   /* Enable various internal debug messages. */
@@ -97,7 +100,8 @@ static void pfInit( void )
     gLocalCompiler_XT = 0;
     gVarContext = (cell_t)NULL;   /* Points to last name field. */
     gVarState = 0;        /* 1 if compiling. */
-    gVarEcho = 0;       /* Echo input. */
+    gVarByeCode = 0;      /* BYE-CODE */
+    gVarEcho = 0;         /* Echo input. */
     gVarTraceLevel = 0;   /* Trace Level for Inner Interpreter. */
     gVarTraceFlags = 0;   /* Enable various internal debug messages. */
     gVarReturnCode = 0;   /* Returned to caller of Forth, eg. UNIX shell. */
@@ -572,7 +576,7 @@ ThrowCode pfDoForth( const char *DicFileName, const char *SourceName, cell_t IfI
     PF_USER_TERM;
 #endif
 
-    return Result;
+    return Result ? Result : gVarByeCode;
 
 error2:
     MSG("pfDoForth: Error occured.\n");