--- gforth/blocks.fs 2007/02/18 18:30:51 1.47 +++ gforth/blocks.fs 2007/02/18 18:59:40 1.49 @@ -78,11 +78,12 @@ Defer flush-blocks ( -- ) \ gforth try ( c-addr u ) 2dup open-fpath-file throw rot close-file throw 2dup file-status throw bin open-file throw - >r 2drop r> - iferror ( c-addr u ior ) + >r 2drop r> 0 + restore endtry + ?dup-if ( c-addr u ior ) >r 2dup file-status nip 0= r> and throw \ does it really not exist? r/w bin create-file throw - then endtry + then block-fid @ IF flush-blocks block-fid @ close-file throw THEN