}\r
\r
/**************************************************************************\r
-** Main entry point fo pForth\r
+** Main entry point for pForth\r
*/\r
-int32 pfDoForth( const char *DicName, const char *SourceName, int32 IfInit )\r
+int32 pfDoForth( const char *DicFileName, const char *SourceName, int32 IfInit )\r
{\r
pfTaskData_t *cftd;\r
pfDictionary_t *dic = NULL;\r
\r
#ifdef PF_USER_INIT\r
Result = PF_USER_INIT;\r
- if( Result < 0 ) goto error;\r
+ if( Result < 0 ) goto error1;\r
#endif\r
\r
pfInit();\r
\r
- \r
/* Allocate Task structure. */\r
pfDebugMessage("pfDoForth: call pfCreateTask()\n");\r
cftd = pfCreateTask( DEFAULT_USER_DEPTH, DEFAULT_RETURN_DEPTH );\r
if( !pfQueryQuiet() )\r
{\r
MSG( "PForth V"PFORTH_VERSION );\r
- if( IsHostLittleEndian() ) MSG("LE");\r
- else MSG("BE");\r
+ if( IsHostLittleEndian() ) MSG("-LE");\r
+ else MSG("-BE");\r
#if PF_BIG_ENDIAN_DIC\r
MSG("/BE");\r
#elif PF_LITTLE_ENDIAN_DIC\r
\r
\r
#ifdef PF_NO_GLOBAL_INIT\r
- if( LoadCustomFunctionTable() < 0 ) goto error; /* Init custom 'C' call array. */\r
+ if( LoadCustomFunctionTable() < 0 ) goto error2; /* Init custom 'C' call array. */\r
#endif\r
\r
#if (!defined(PF_NO_INIT)) && (!defined(PF_NO_SHELL))\r
TOUCH(IfInit);\r
#endif /* !PF_NO_INIT && !PF_NO_SHELL*/\r
{\r
- if( DicName )\r
+ if( DicFileName )\r
{\r
- pfDebugMessage("DicName = "); pfDebugMessage(DicName); pfDebugMessage("\n");\r
+ pfDebugMessage("DicFileName = "); pfDebugMessage(DicFileName); pfDebugMessage("\n");\r
EMIT_CR;\r
- dic = pfLoadDictionary( DicName, &EntryPoint );\r
+ dic = pfLoadDictionary( DicFileName, &EntryPoint );\r
}\r
else\r
{\r
dic = pfLoadStaticDictionary(); \r
}\r
}\r
- if( dic == NULL ) goto error;\r
+ if( dic == NULL ) goto error2;\r
EMIT_CR;\r
\r
pfDebugMessage("pfDoForth: try AUTO.INIT\n");\r
if( Result != 0 )\r
{\r
MSG("Error in AUTO.INIT");\r
- goto error;\r
+ goto error2;\r
}\r
-\r
+ \r
if( EntryPoint != 0 )\r
{\r
Result = pfCatch( EntryPoint );\r
\r
return Result;\r
\r
-error:\r
+error2:\r
MSG("pfDoForth: Error occured.\n");\r
pfDeleteTask( cftd );\r
+ // Terminate so we restore normal shell tty mode.\r
+ pfTerm();\r
+\r
+#ifdef PF_USER_INIT\r
+error1:\r
+#endif\r
+\r
return -1;\r
}\r