Index: csrc/pf_core.c
===================================================================
RCS file: /home/asau/repo/cvs/apforth/csrc/pf_core.c,v
retrieving revision 1.12
diff -u -r1.12 pf_core.c
--- csrc/pf_core.c 27 Jan 2011 12:55:05 -0000 1.12
+++ csrc/pf_core.c 9 Feb 2011 16:28:29 -0000
@@ -424,6 +424,34 @@
ioType( CString, (cell_t) pfCStringLength(CString) );
}
+/* Print banner */
+static void pfPrintBanner(const char *DicFileName)
+{
+ MSG("PForth V"PFORTH_VERSION);
+
+ if (IsHostLittleEndian()) MSG("-LE"); else MSG("-BE");
+#if PF_BIG_ENDIAN_DIC
+ MSG("/BE");
+#elif PF_LITTLE_ENDIAN_DIC
+ MSG("/LE");
+#endif
+
+ if (sizeof(cell_t) == 8) {
+ MSG("/64");
+ } else if (sizeof(cell_t) == 4) {
+ MSG("/32");
+ }
+
+ MSG(", built "__DATE__" "__TIME__);
+
+ if (DicFileName != NULL) {
+ EMIT_CR;
+ } else {
+ MSG(" (static)");
+ EMIT_CR;
+ }
+}
+
/**************************************************************************
** Main entry point for pForth.
*/
@@ -444,63 +472,33 @@
/* Allocate Task structure. */
cftd = (pfTaskData_t*) pfCreateTask(DEFAULT_USER_DEPTH, DEFAULT_RETURN_DEPTH);
- if( cftd )
- {
+ if (cftd != NULL) {
pfSetCurrentTask( cftd );
-
- if( !gVarQuiet )
- {
- MSG( "PForth V"PFORTH_VERSION );
- if( IsHostLittleEndian() ) MSG("-LE");
- else MSG("-BE");
-#if PF_BIG_ENDIAN_DIC
- MSG("/BE");
-#elif PF_LITTLE_ENDIAN_DIC
- MSG("/LE");
-#endif
- if (sizeof(cell_t) == 8)
- {
- MSG("/64");
- }
- else if (sizeof(cell_t) == 4)
- {
- MSG("/32");
- }
-
- MSG( ", built "__DATE__" "__TIME__ );
- }
+
+ if (!gVarQuiet) pfPrintBanner(DicFileName);
if (LoadCustomFunctionTable() < 0) goto error2; /* Init custom 'C' call array. */
-#if (!defined(PF_NO_INIT)) && (!defined(PF_NO_SHELL))
- if( IfInit )
- {
+#if defined(PF_NO_INIT) || defined(PF_NO_SHELL)
+ IfInit = 0; /* don't try to build dictionary */
+#endif
+
+ if (IfInit) {
+#if !defined(PF_NO_INIT) && !defined(PF_NO_SHELL)
dic = (pfDictionary_t*) pfBuildDictionary( DEFAULT_HEADER_SIZE, DEFAULT_CODE_SIZE );
- }
- else
-#else
- TOUCH(IfInit);
#endif /* !PF_NO_INIT && !PF_NO_SHELL*/
- {
- if( DicFileName )
- {
- EMIT_CR;
- dic = (pfDictionary_t*) pfLoadDictionary( DicFileName, &EntryPoint );
- }
- else
- {
- MSG(" (static)");
- EMIT_CR;
- dic = (pfDictionary_t*) pfLoadStaticDictionary();
- }
+ } else if (DicFileName != NULL) {
+ dic = (pfDictionary_t*) pfLoadDictionary(DicFileName, &EntryPoint);
+ } else {
+ dic = (pfDictionary_t*) pfLoadStaticDictionary();
}
- if( dic == NULL ) goto error2;
-
- if( !gVarQuiet )
- {
+
+ if (dic == NULL) goto error2;
+
+ if (!gVarQuiet) {
EMIT_CR;
}
-
+
Result = pfExecIfDefined("AUTO.INIT");
if( Result != 0 )
{
@@ -512,9 +510,9 @@
{
Result = pfCatch( EntryPoint );
}
-#ifndef PF_NO_SHELL
else
{
+#ifndef PF_NO_SHELL
if( SourceName == NULL )
{
Result = pfQuit();
@@ -529,8 +527,8 @@
}
Result = pfIncludeFile( SourceName );
}
- }
#endif /* PF_NO_SHELL */
+ }
/* Clean up after running Forth. */
pfExecIfDefined("AUTO.TERM");