Add VERSION_CODE and print normal version
[debian/pforth] / csrc / pf_core.c
index 3bc115aa91ca43014928fde4afc5be2e060bc179..26b49c8c0ccb491d99b23cb1310f8782f7cdc5be 100644 (file)
@@ -7,14 +7,17 @@
 ** Author: Phil Burk
 ** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom
 **
-** The pForth software code is dedicated to the public domain,
-** and any third party may reproduce, distribute and modify
-** the pForth software code or any derivative works thereof
-** without any compensation or license.  The pForth software
-** code is provided on an "as is" basis without any warranty
-** of any kind, including, without limitation, the implied
-** warranties of merchantability and fitness for a particular
-** purpose and their equivalents under the laws of any jurisdiction.
+** Permission to use, copy, modify, and/or distribute this
+** software for any purpose with or without fee is hereby granted.
+**
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+** THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
+** CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+** FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+** CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 **
 ****************************************************************
 ** 940502 PLB Creation.
@@ -52,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. */
@@ -75,7 +81,7 @@ static void pfTerm( void );
 #define DEFAULT_USER_DEPTH (512)
 
 #ifndef PF_DEFAULT_HEADER_SIZE
-#define DEFAULT_HEADER_SIZE (120000)
+#define PF_DEFAULT_HEADER_SIZE (120000)
 #endif
 
 #ifndef PF_DEFAULT_CODE_SIZE
@@ -94,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. */
@@ -456,9 +463,10 @@ ThrowCode pfDoForth( const char *DicFileName, const char *SourceName, cell_t IfI
 
         if( !gVarQuiet )
         {
-            MSG( "PForth V"PFORTH_VERSION );
-            if( IsHostLittleEndian() ) MSG("-LE");
-            else MSG("-BE");
+            MSG( "PForth V"PFORTH_VERSION_NAME", " );
+
+            if( IsHostLittleEndian() ) MSG("LE");
+            else MSG("BE");
 #if PF_BIG_ENDIAN_DIC
             MSG("/BE");
 #elif PF_LITTLE_ENDIAN_DIC
@@ -569,7 +577,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");