Diff for /gforth/savesys.fs between versions 1.6 and 1.17

version 1.6, 2003/03/09 15:16:52 version 1.17, 2012/07/20 19:34:27
Line 1 Line 1
 \ image dump                                           15nov94py  \ image dump                                           15nov94py
   
 \ Copyright (C) 1995,1997,2003 Free Software Foundation, Inc.  \ Copyright (C) 1995,1997,2003,2006,2007,2010,2011 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.  
   
 : save-string-dict { addr1 u -- addr2 u }  : delete-prefix ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 )
     here { addr2 }      \ if c-addr2 u2 is a prefix of c-addr1 u1, delete it
     u allot      2over 2over string-prefix? if
     addr1 addr2 u move          nip /string
     addr2 u ;      else
           2drop
       endif ;
   
 : update-image-included-files ( -- )  : update-image-included-files ( -- )
     included-files 2@ { addr cnt }      included-files 2@ { addr cnt }
Line 33 Line 34
     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 ;
   
   : update-maintask ( -- )
       throw-entry main-task udp @ throw-entry next-task - /string move ;
   
 : 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      update-image-order
       update-maintask
     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)

Removed from v.1.6  
changed lines
  Added in v.1.17


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