Diff for /gforth/blocks.fs between versions 1.39 and 1.46

version 1.39, 2003/01/20 19:17:59 version 1.46, 2006/12/31 13:39:11
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 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,
Line 242  Create block-input   A, A, A, A, A, Line 245  Create block-input   A, A, A, A, A,
     \G Save the current input source specification. Store @i{n} in      \G Save the current input source specification. Store @i{n} in
     \G @code{BLK}, set @code{>IN} to 0 and interpret. When the parse      \G @code{BLK}, set @code{>IN} to 0 and interpret. When the parse
     \G area is exhausted, restore the input source specification.      \G area is exhausted, restore the input source specification.
     loadfilename 2@ 2>r      s" * a block*" loadfilename>r
     s" * a block*" loadfilename 2!  
     push-file      push-file
     dup loadline ! blk ! >in off ['] interpret catch      dup loadline ! blk ! >in off ['] interpret catch
     pop-file      pop-file
     2r> loadfilename 2!      r>loadfilename
     throw ;      throw ;
 [THEN]  [THEN]
   

Removed from v.1.39  
changed lines
  Added in v.1.46


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