Diff for /gforth/string.fs between versions 1.1 and 1.6

version 1.1, 2000/03/26 21:53:16 version 1.6, 2005/12/31 15:46:10
Line 1 Line 1
 \ dynamic string handling                              10aug99py  \ dynamic string handling                              10aug99py
   
   \ Copyright (C) 2000,2005 Free Software Foundation, Inc.
   
   \ This file is part of Gforth.
   
   \ Gforth is free software; you can redistribute it and/or
   \ modify it under the terms of the GNU General Public License
   \ as published by the Free Software Foundation; either version 2
   \ of the License, or (at your option) any later version.
   
   \ This program is distributed in the hope that it will be useful,
   \ but WITHOUT ANY WARRANTY; without even the implied warranty of
   \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   \ GNU General Public License for more details.
   
   \ You should have received a copy of the GNU General Public License
   \ along with this program; if not, write to the Free Software
   \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 : delete   ( buffer size count -- )  : delete   ( buffer size count -- )
   over min >r  r@ - ( left over )  dup 0>    over min >r  r@ - ( left over )  dup 0>
   IF  2dup swap dup  r@ +  -rot swap move  THEN  + r> bl fill ;    IF  2dup swap dup  r@ +  -rot swap move  THEN  + r> bl fill ;
   
   [IFUNDEF] insert
 : insert   ( string length buffer size -- )  : insert   ( string length buffer size -- )
   rot over min >r  r@ - ( left over )    rot over min >r  r@ - ( left over )
   over dup r@ +  rot move   r> move  ;    over dup r@ +  rot move   r> move  ;
   [THEN]
   
 : $padding ( n -- n' )  : $padding ( n -- n' )
   [ 6 cells ] Literal + [ -4 cells ] Literal and ;    [ 6 cells ] Literal + [ -4 cells ] Literal and ;
Line 28 Line 48
 \ dynamic string handling                              12dec99py  \ dynamic string handling                              12dec99py
   
 : $split ( addr u char -- addr1 u1 addr2 u2 )  : $split ( addr u char -- addr1 u1 addr2 u2 )
   >r 2dup r> scan dup >r 1 /string 2swap r> - 2swap ;    >r 2dup r> scan dup >r dup IF  1 /string  THEN
     2swap r> - 2swap ;
   
 : $iter ( .. $addr char xt -- .. ) { char xt }  : $iter ( .. $addr char xt -- .. ) { char xt }
   $@ BEGIN  dup  WHILE  char $split >r >r xt execute r> r>    $@ BEGIN  dup  WHILE  char $split >r >r xt execute r> r>

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


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