Fix REPOSITION-FILE, HISTORY, locked file handle and other problems.
[pforth] / csrc / pfcompil.c
index 025eebf..84546c4 100644 (file)
@@ -250,6 +250,7 @@ PForthDictionary pfBuildDictionary( cell_t HeaderSize, cell_t CodeSize )
        CreateDicEntryC( ID_FILL, "FILL", 0 );\r
        CreateDicEntryC( ID_FIND, "FIND",  0 );\r
        CreateDicEntryC( ID_FILE_CREATE, "CREATE-FILE",  0 );\r
        CreateDicEntryC( ID_FILL, "FILL", 0 );\r
        CreateDicEntryC( ID_FIND, "FIND",  0 );\r
        CreateDicEntryC( ID_FILE_CREATE, "CREATE-FILE",  0 );\r
+       CreateDicEntryC( ID_FILE_DELETE, "DELETE-FILE",  0 );\r
        CreateDicEntryC( ID_FILE_OPEN, "OPEN-FILE",  0 );\r
        CreateDicEntryC( ID_FILE_CLOSE, "CLOSE-FILE",  0 );\r
        CreateDicEntryC( ID_FILE_READ, "READ-FILE",  0 );\r
        CreateDicEntryC( ID_FILE_OPEN, "OPEN-FILE",  0 );\r
        CreateDicEntryC( ID_FILE_CLOSE, "CLOSE-FILE",  0 );\r
        CreateDicEntryC( ID_FILE_READ, "READ-FILE",  0 );\r
@@ -926,7 +927,7 @@ ThrowCode ffOuterInterpreterLoop( void )
 }\r
 \r
 /***************************************************************\r
 }\r
 \r
 /***************************************************************\r
-** Include a file\r
+** Include then close a file\r
 ***************************************************************/\r
 \r
 ThrowCode ffIncludeFile( FileStream *InputFile )\r
 ***************************************************************/\r
 \r
 ThrowCode ffIncludeFile( FileStream *InputFile )\r
@@ -962,6 +963,9 @@ ThrowCode ffIncludeFile( FileStream *InputFile )
 /* Pop file stream. */\r
        ffPopInputStream();\r
        \r
 /* Pop file stream. */\r
        ffPopInputStream();\r
        \r
+/* ANSI spec specifies that this should also close the file. */\r
+       sdCloseFile(InputFile);\r
+\r
        return exception;\r
 }\r
 \r
        return exception;\r
 }\r
 \r