--- gforth/savesys.fs 2003/02/06 16:49:17 1.5 +++ gforth/savesys.fs 2007/12/31 17:34:58 1.10 @@ -1,6 +1,6 @@ \ image dump 15nov94py -\ Copyright (C) 1995,1997 Free Software Foundation, Inc. +\ Copyright (C) 1995,1997,2003,2006,2007 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -18,12 +18,20 @@ \ along with this program; if not, write to the Free Software \ 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 } u allot addr1 addr2 u move 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 ( -- ) included-files 2@ { addr cnt } image-included-files 2@ { old-addr old-cnt } @@ -33,7 +41,8 @@ old-addr new-addr old-cnt 2* cells move cnt old-cnt 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! LOOP maxalign ;