X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=forth.jl.git;a=blobdiff_plain;f=src%2Fforth.jl;h=609897a26152b80a166d665e1e574b70c8086cb4;hp=f10ea045cedc74258f737254a55e0cce0746c3a7;hb=b2b707fe1502c612ee247f098d1987f67e62017d;hpb=cfc515dcc74901ff7fc73879ac9718b9424a9310 diff --git a/src/forth.jl b/src/forth.jl index f10ea04..609897a 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -585,6 +585,14 @@ end) sources = Array{Any,1}() currentSource() = sources[length(sources)] +CLOSEFILES_CFA = defPrimWord("CLOSEFILES", () -> begin + while currentSource() != STDIN + close(pop!(sources)) + end + + return NEXT +end) + EOF_CFA = defPrimWord("\x04", () -> begin if currentSource() != STDIN close(pop!(sources)) @@ -1031,7 +1039,7 @@ QUIT_CFA = defWord("QUIT", BRANCH_CFA,-4]) ABORT_CFA = defWord("ABORT", - [PSP0_CFA, PSPSTORE_CFA, QUIT_CFA]) + [CLOSEFILES_CFA, PSP0_CFA, PSPSTORE_CFA, QUIT_CFA]) BYE_CFA = defPrimWord("BYE", () -> begin println("\nBye!")