Diff for /gforth/savesys.fs between versions 1.1 and 1.10

version 1.1, 1997/05/21 20:39:38 version 1.10, 2007/12/31 17:34:58
Line 1 Line 1
 \ image dump                                           15nov94py  \ image dump                                           15nov94py
   
 \ Copyright (C) 1995 Free Software Foundation, Inc.  \ Copyright (C) 1995,1997,2003,2006,2007 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.
   
 : save-string-dict { addr1 u -- addr2 u }  : save-mem-dict { addr1 u -- addr2 u }
     here { addr2 }      here { addr2 }
     u allot      u allot
     addr1 addr2 u move      addr1 addr2 u move
     addr2 u ;      addr2 u ;
   
   : delete-prefix ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 )
       \ if c-addr2 u2 is a prefix of c-addr1 u1, delete it
       2over 2over string-prefix? if
           nip /string
       else
           2drop
       endif ;
   
 : update-image-included-files ( -- )  : update-image-included-files ( -- )
     included-files 2@ { addr cnt }      included-files 2@ { addr cnt }
     image-included-files 2@ { old-addr old-cnt }      image-included-files 2@ { old-addr old-cnt }
Line 33 Line 41
     old-addr new-addr old-cnt 2* cells move      old-addr new-addr old-cnt 2* cells move
     cnt old-cnt      cnt old-cnt
     U+DO      U+DO
         addr i 2* cells + 2@ save-string-dict          addr i 2* cells + 2@
           s" GFORTHDESTDIR" getenv delete-prefix save-mem-dict
         new-addr i 2* cells + 2!          new-addr i 2* cells + 2!
     LOOP      LOOP
     maxalign ;      maxalign ;
Line 41 Line 50
 : dump-fi ( addr u -- )  : dump-fi ( addr u -- )
     w/o bin create-file throw >r      w/o bin create-file throw >r
     update-image-included-files      update-image-included-files
       update-image-order
     here forthstart - forthstart 2 cells + !      here forthstart - forthstart 2 cells + !
     forthstart      forthstart
     begin \ search for start of file ("#! " at a multiple of 8)      begin \ search for start of file ("#! " at a multiple of 8)
         8 -          8 -
         dup 3 s" #! " compare 0=          dup 3 s" #! " str=
     until ( imagestart )      until ( imagestart )
     here over - r@ write-file throw      here over - r@ write-file throw
     r> close-file throw ;      r> close-file throw ;

Removed from v.1.1  
changed lines
  Added in v.1.10


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