Diff for /gforth/blocks.fs between versions 1.48 and 1.54

version 1.48, 2007/02/18 18:51:40 version 1.54, 2008/05/18 19:30:48
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 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2006,2007 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ modify it under the terms of the GNU General Public License
 \ as published by the Free Software Foundation; either version 2  \ as published by the Free Software Foundation, either version 3
 \ of the License, or (at your option) any later version.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 Line 15
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program. If not, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.  
   
   
 \ A more efficient implementation would use mmap on OSs that  \ A more efficient implementation would use mmap on OSs that
Line 79  Defer flush-blocks ( -- ) \ gforth Line 78  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>
     restore endtry      endtry-iferror ( c-addr u ior )
     dup if ( 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
     then      then
Line 126  Defer flush-blocks ( -- ) \ gforth Line 124  Defer flush-blocks ( -- ) \ gforth
     rdrop ;      rdrop ;
   
 : empty-buffer ( buffer -- ) \ gforth  : empty-buffer ( buffer -- ) \ gforth
     buffer-block off ;      dup buffer-block on buffer-dirty off ;
   
 : save-buffers  ( -- ) \ block  : save-buffers  ( -- ) \ block
     \G Transfer the contents of each @code{update}d block buffer to      \G Transfer the contents of each @code{update}d block buffer to
Line 152  Defer flush-blocks ( -- ) \ gforth Line 150  Defer flush-blocks ( -- ) \ gforth
 : get-buffer ( u -- a-addr ) \ gforth  : get-buffer ( u -- a-addr ) \ gforth
     0 buffers um/mod drop buffer-struct %size * block-buffers @ + ;      0 buffers um/mod drop buffer-struct %size * block-buffers @ + ;
   
 : block ( u -- a-addr ) \ gforthman- block  : block ( u -- a-addr ) \ block
     \G If a block buffer is assigned for block @i{u}, return its      \G If a block buffer is assigned for block @i{u}, return its
     \G start address, @i{a-addr}. Otherwise, assign a block buffer      \G start address, @i{a-addr}. Otherwise, assign a block buffer
     \G for block @i{u} (if the assigned block buffer has been      \G for block @i{u} (if the assigned block buffer has been
Line 293  Create block-input   A, A, A, A, A, Line 291  Create block-input   A, A, A, A, A,
 \     0= IF  block-included  ELSE  included  THEN ;  \     0= IF  block-included  ELSE  included  THEN ;
   
 get-current environment-wordlist set-current  get-current environment-wordlist set-current
 true constant block  true constant block \ environment- environment
 true constant block-ext  true constant block-ext
 set-current  set-current
   

Removed from v.1.48  
changed lines
  Added in v.1.54


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