Diff for /gforth/kernel/require.fs between versions 1.15 and 1.22

version 1.15, 2000/09/11 20:56:39 version 1.22, 2003/01/19 23:35:35
Line 1 Line 1
 \ require.fs  \ require.fs
   
 \ Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.  \ Copyright (C) 1995-2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 16 Line 16
   
 \ 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, write to the Free Software
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 \ Now: Kernel Module, Reloadable  \ Now: Kernel Module, Reloadable
   
Line 28  here ," *a block*" dup c@ swap 1 + swap Line 28  here ," *a block*" dup c@ swap 1 + swap
 here ," *evaluated string*" dup c@ swap 1 + swap  here ," *evaluated string*" dup c@ swap 1 + swap
 here ," *the terminal*" dup c@ swap 1 + swap  here ," *the terminal*" dup c@ swap 1 + swap
 , A, , A, , A, , A, here 8 cells -  , A, , A, , A, , A, here 8 cells -
 create image-included-files 4 , A, ( pointer to and count of included  create image-included-files 4 , A, ( pointer to and count of included files )
 \ files ) included-files points to ALLOCATEd space, while  \ included-files points to ALLOCATEd space, while image-included-files
 \ image-included-files points to ALLOTed objects, so it survives a  \ points to ALLOTed objects, so it survives a save-system
 \ save-system  
   
 : sourcefilename ( -- c-addr u ) \ gforth  : sourcefilename ( -- c-addr u ) \ gforth
     \G The name of the source file which is currently the input      \G The name of the source file which is currently the input
Line 61  create image-included-files 4 , A, ( poi Line 60  create image-included-files 4 , A, ( poi
     \G @file{./foo.fs}      \G @file{./foo.fs}
     included-files 2@ 0      included-files 2@ 0
     ?do ( c-addr u addr )      ?do ( c-addr u addr )
         dup >r 2@ 2over compare 0=          dup >r 2@ 2over str=
         if          if
             2drop rdrop unloop              2drop rdrop unloop
             true EXIT              true EXIT
Line 76  create image-included-files 4 , A, ( poi Line 75  create image-included-files 4 , A, ( poi
     2/ cell / included-files 2!      2/ cell / included-files 2!
     2! ;      2! ;
   
   has? new-input [IF]
   : included1 ( i*x file-id c-addr u -- j*x ) \ gforth
       \G Include the file file-id with the name given by @var{c-addr u}.
       save-mem add-included-file ( file-id )
       included-files @ 1- ['] include-file2 catch
       throw ;
   [ELSE]
 : included1 ( i*x file-id c-addr u -- j*x ) \ gforth  : included1 ( i*x file-id c-addr u -- j*x ) \ gforth
     \G Include the file file-id with the name given by @var{c-addr u}.      \G Include the file file-id with the name given by @var{c-addr u}.
     loadfilename# @ >r      loadfilename# @ >r
Line 84  create image-included-files 4 , A, ( poi Line 90  create image-included-files 4 , A, ( poi
     ['] include-file2 catch      ['] include-file2 catch
     r> loadfilename# !      r> loadfilename# !
     throw ;      throw ;
       [THEN]
   
 : included ( i*x c-addr u -- j*x ) \ file  : included ( i*x c-addr u -- j*x ) \ file
     \G @code{include-file} the file whose name is given by the string      \G @code{include-file} the file whose name is given by the string
     \G @var{c-addr u}.      \G @var{c-addr u}.
Line 155  create image-included-files 4 , A, ( poi Line 162  create image-included-files 4 , A, ( poi
 : .included ( -- ) \ gforth  : .included ( -- ) \ gforth
     \G list the names of the files that have been @code{included}      \G list the names of the files that have been @code{included}
     included-files 2@ .strings ;      included-files 2@ .strings ;
       
 \ contains tools/newrequire.fs  
 \ \I $Id$  
   

Removed from v.1.15  
changed lines
  Added in v.1.22


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