pfe-block-misc-ext ? BLOCK-Misc Compatibility words
CLOSE-BLOCKFILE ( -- ) ?=>? ( | ) ; | ? |
[FORTH]
;OPEN-BLOCKFILE ( "filename" -- ) ?=>? ( | ) ; | ? |
[FORTH]
;CREATE-BLOCKFILE ( blocks-count "filename" -- ) ?=>? ( | ) ; | ? |
[FORTH]
;SET-BLOCKFILE ( block-file* -- ) ?=>? ( | ) ; | ? |
"EXTENSIONS"
;0 CREATE-BLOCKFILE ?=>? ( | ) ; | ? |
"EXTENSIONS"
;B/BUF ( -- bytesperbuffer-count ) [EXT]
CLOSE-BLOCKFILE ( -- ) [FTH] w32for => [FORTH]
w32for-implementation:
blockhandle -1 <> if flush close-file drop then -1 set-blockfile
in pfe:
: CLOSE-BLOCKFILE BLOCK-FILE ?DUP IF FLUSH CLOSE-FILE DROP THEN OFF> BLOCK-FILE ;
OPEN-BLOCKFILE ( "filename" -- ) [FTH] w32for => [FORTH]
w32for-implementation:
close-blockfile parse-word r/w open-file abort" failed to open block-file" set-blockfile empty-buffers
CREATE-BLOCKFILE ( blocks-count "filename" -- ) [FTH] w32for => [FORTH]
w32for-implementation:
close-blockfile parse-word r/w create-file abort" failed to create block-file" set-blockfile dup b/buf m* blockhandle resize-file abort" unable to create a file of that size" empty-buffers 0 do i wipe loop flush
pfe does not wipe the buffers
SET-BLOCKFILE ( block-file* -- ) [EXT] win32for => "EXTENSIONS"
win32forth uses a system-filedescriptor where -1 means unused in the BLOCKHANDLE, but we use a "FILE*"-like structure, so NULL means NOT-IN-USE. Here we set it.
0 CREATE-BLOCKFILE - no description, sorry