Diff for /gforth/extend.fs between versions 1.30 and 1.31

version 1.30, 1998/12/08 22:02:41 version 1.31, 1998/12/19 13:43:17
Line 168  variable span ( -- a-addr ) \ core-ext Line 168  variable span ( -- a-addr ) \ core-ext
 \ Marker creates a mark that is removed (including everything   \ Marker creates a mark that is removed (including everything 
 \ defined afterwards) when executing the mark.  \ defined afterwards) when executing the mark.
   
 : marker, ( -- mark )  here dup A,  : included-files-mark ( -- u )
   voclink @ A, voclink      included-files 2@ nip
   BEGIN  @ dup WHILE  dup 0 wordlist-link - @ A,  REPEAT  drop      blk @ 0=
   udp @ , ;      if \ not input from blocks
           source-id 1 -1 within
           if \ input from file
               1- \ do not include the last file (hopefully this is the
                  \ currently included file)
           then
       then ;  
   
   \ hmm, most of the saving appears to be pretty unnecessary: we could
   \ derive the wordlists and the words that have to be kept from the
   \ saved value of dp value. - anton
   
   : marker, ( -- mark )
       here
       included-files-mark ,
       dup A, \ here
       voclink @ A, \ vocabulary list start
       \ for all wordlists, remember wordlist-id (the linked list)
       voclink
       BEGIN
           @ dup
       WHILE
           dup 0 wordlist-link - wordlist-id @ A,
       REPEAT
       drop
       \ remember udp
       udp @ , ;
   
 : marker! ( mark -- )  : marker! ( mark -- )
     dup @ swap cell+      \ reset included files count; resize will happen on next add-included-file
       included-files 2@ drop over @ included-files 2! cell+
       \ rest of marker!
       dup @ swap cell+ ( here rest-of-marker )
     dup @ voclink ! cell+      dup @ voclink ! cell+
       \ restore wordlists to former words
     voclink      voclink
     BEGIN      BEGIN
         @ dup           @ dup 
     WHILE      WHILE
         over @ over 0 wordlist-link - !          over @ over 0 wordlist-link - wordlist-id !
         swap cell+ swap          swap cell+ swap
     REPEAT      REPEAT
     drop  voclink      drop
       \ rehash wordlists to remove forgotten words
       \ why don't we do this in a single step? - anton
       voclink
     BEGIN      BEGIN
         @ dup          @ dup
     WHILE      WHILE
         dup 0 wordlist-link - rehash          dup 0 wordlist-link - rehash
     REPEAT      REPEAT
     drop      drop
       \ restore udp and dp
     @ udp !  dp !      @ udp !  dp !
     \ clean up vocabulary stack      \ clean up vocabulary stack
     0 vp @ 0      0 vp @ 0

Removed from v.1.30  
changed lines
  Added in v.1.31


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