Diff for /gforth/blocks.fs between versions 1.38 and 1.42

version 1.38, 2003/01/20 17:07:36 version 1.42, 2003/10/30 14:18:41
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 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 112  Defer flush-blocks ( -- ) \ gforth Line 112  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 216  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 225  Create block-input   A, A, A, A, A, Line 225  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.
     block-input 0 new-tib dup loadline ! blk !  2 loadfilename# !      block-input 0 new-tib dup loadline ! blk !  s" * a block*" loadfilename 2!
     ['] interpret catch pop-file throw ;      ['] interpret catch pop-file throw ;
 [ELSE]  [ELSE]
 : (source)  ( -- c-addr u )  : (source)  ( -- c-addr u )
Line 242  Create block-input   A, A, A, A, A, Line 242  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# @ >r      s" * a block*" loadfilename>r
     2 loadfilename# ! \ "*a block*"  
     push-file      push-file
     dup loadline ! blk ! >in off ['] interpret catch      dup loadline ! blk ! >in off ['] interpret catch
     pop-file      pop-file
     r> loadfilename# !      r>loadfilename
     throw ;      throw ;
 [THEN]  [THEN]
   

Removed from v.1.38  
changed lines
  Added in v.1.42


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