Diff for /gforth/blocks.fs between versions 1.40 and 1.47

version 1.40, 2003/01/22 10:59:54 version 1.47, 2007/02/18 18:30:51
Line 1 Line 1
 \ A less simple implementation of the blocks wordset.   \ A less simple implementation of the blocks wordset. 
   
 \ Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2006 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 64  User block-offset ( -- addr ) \ gforth Line 64  User block-offset ( -- addr ) \ gforth
     buffer-struct buffers * %alloc dup block-buffers ! ( addr )      buffer-struct buffers * %alloc dup block-buffers ! ( addr )
     buffer-struct %size buffers * erase ;      buffer-struct %size buffers * erase ;
   
 ' block-cold INIT8 chained  :noname ( -- )
       defers 'cold
       block-cold
   ; is 'cold
   
 block-cold  block-cold
   
Line 76  Defer flush-blocks ( -- ) \ gforth Line 79  Defer flush-blocks ( -- ) \ gforth
         2dup open-fpath-file throw          2dup open-fpath-file throw
         rot close-file throw  2dup file-status throw bin open-file throw          rot close-file throw  2dup file-status throw bin open-file throw
         >r 2drop r>          >r 2drop r>
     recover ( c-addr u ior )      iferror ( c-addr u ior )
         >r 2dup file-status nip 0= r> and throw \ does it really not exist?          >r 2dup file-status nip 0= r> and throw \ does it really not exist?
         r/w bin create-file throw          r/w bin create-file throw
     endtry      then endtry
     block-fid @ IF      block-fid @ IF
         flush-blocks block-fid @ close-file throw          flush-blocks block-fid @ close-file throw
     THEN      THEN
Line 112  Defer flush-blocks ( -- ) \ gforth Line 115  Defer flush-blocks ( -- ) \ gforth
   
 : save-buffer ( buffer -- ) \ gforth  : save-buffer ( buffer -- ) \ gforth
     >r      >r
     r@ buffer-dirty @ r@ buffer-block @ 0<> and      r@ buffer-dirty @
     if      if
         r@ buffer-block @ block-position          r@ buffer-block @ block-position
         r@ block-buffer chars/block  r@ buffer-fid @  write-file throw          r@ block-buffer chars/block  r@ buffer-fid @  write-file throw
Line 216  User scr ( -- a-addr ) \ block-ext s-c-r Line 219  User scr ( -- a-addr ) \ block-ext s-c-r
                               \ restore-input                                \ restore-input
 :noname  blk @ >in @ 2 ;      \ save-input  :noname  blk @ >in @ 2 ;      \ save-input
 :noname  2 ;                  \ source-id "*a block*"  :noname  2 ;                  \ source-id "*a block*"
 :noname  1 blk +! 1 loadline +! true ;      \ refill  :noname  1 blk +! 1 loadline +! >in off true ;      \ refill
 :noname  blk @ block chars/block ;  \ source  :noname  blk @ block chars/block ;  \ source
   
 Create block-input   A, A, A, A, A,  Create block-input   A, A, A, A, A,

Removed from v.1.40  
changed lines
  Added in v.1.47


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>