Diff for /gforth/blocks.fs between versions 1.56 and 1.62

version 1.56, 2011/01/19 19:00:45 version 1.62, 2012/12/31 15:25:17
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,2003,2006,2007,2008 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2006,2007,2008,2011,2012 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 89  Defer flush-blocks ( -- ) \ gforth Line 89  Defer flush-blocks ( -- ) \ gforth
   
 : use ( "file" -- ) \ gforth  : use ( "file" -- ) \ gforth
     \g Use @i{file} as the blocks file.      \g Use @i{file} as the blocks file.
     name open-blocks ;      name name-too-short? open-blocks ;
   
 \ the file is opened as binary file, since it either will contain text  \ the file is opened as binary file, since it either will contain text
 \ without newlines or binary data  \ without newlines or binary data
Line 188  Defer flush-blocks ( -- ) \ gforth Line 188  Defer flush-blocks ( -- ) \ gforth
     block ;      block ;
   
 User scr ( -- a-addr ) \ block-ext s-c-r  User scr ( -- a-addr ) \ block-ext s-c-r
     \G @code{User} variable -- @i{a-addr} is the address of a cell containing      \G @code{User} variable containing
     \G the block number of the block most recently processed by      \G the block number of the block most recently processed by
     \G @code{list}.      \G @code{list}.
 0 scr !  0 scr !
Line 208  User scr ( -- a-addr ) \ block-ext s-c-r Line 208  User scr ( -- a-addr ) \ block-ext s-c-r
     dup scr !      dup scr !
     ." Screen " u.      ." Screen " u.
     scr @ updated?  0= IF ." not "  THEN  ." modified     " cr      scr @ updated?  0= IF ." not "  THEN  ." modified     " cr
     16 0      l/s 0
     ?do      ?do
         i 2 .r space scr @ block i 64 * chars + 64 type cr          i 2 .r space scr @ block i c/l * chars + c/l type cr
     loop ;      loop ;
   
 [IFDEF] current-input  [IFDEF] current-input
Line 223  User scr ( -- a-addr ) \ block-ext s-c-r Line 223  User scr ( -- a-addr ) \ block-ext s-c-r
   
 Create block-input   A, A, A, A, A,  Create block-input   A, A, A, A, A,
   
 : load  ( i*x n -- j*x ) \ block  : load  ( i*x u -- j*x ) \ block
 \G Save the current input source specification. Store @i{n} in      \g Text-interpret block @i{u}.  Block 0 cannot be @code{load}ed.
 \G @code{BLK}, set @code{>IN} to 0 and interpret. When the parse  
 \G area is exhausted, restore the input source specification.  
     dup 0= -35 and throw      dup 0= -35 and throw
     block-input 0 new-tib dup loadline ! blk !  s" * a block*" loadfilename 2!      block-input 0 new-tib dup loadline ! blk !  s" * a block*" loadfilename 2!
     ['] interpret catch pop-file throw ;      ['] interpret catch pop-file throw ;
Line 241  Create block-input   A, A, A, A, A, Line 239  Create block-input   A, A, A, A, A,
 \G @i{c-addr} is the address of the input buffer and @i{u} is the  \G @i{c-addr} is the address of the input buffer and @i{u} is the
 \G number of characters in it.  \G number of characters in it.
   
 : load ( i*x n -- j*x ) \ block  : load ( i*x u -- j*x ) \ block
     \G Save the current input source specification. Store @i{n} in      \g Text-interpret block @i{u}.  Block 0 cannot be @code{load}ed.
     \G @code{BLK}, set @code{>IN} to 0 and interpret. When the parse  
     \G area is exhausted, restore the input source specification.  
     dup 0= -35 and throw      dup 0= -35 and throw
     s" * a block*" loadfilename>r      s" * a block*" loadfilename>r
     push-file      push-file

Removed from v.1.56  
changed lines
  Added in v.1.62


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