--- gforth/extend.fs 1994/08/31 19:42:45 1.6 +++ gforth/extend.fs 1995/04/20 09:42:50 1.9 @@ -6,7 +6,8 @@ decimal \ .( 12may93jaw -: .( [char] ) parse type ; +: .( ( -- ) + [char] ) parse type ; immediate \ VALUE 2>R 2R> 2R@ 17may93jaw @@ -72,6 +73,16 @@ decimal : erase ( 0 1 chars um/mod nip ) 0 fill ; : blank ( 0 1 chars um/mod nip ) bl fill ; +\ SEARCH 02sep94py + +: search ( buf buflen text textlen -- restbuf restlen flag ) + 2over 2 pick - 1+ 3 pick c@ >r + BEGIN r@ scan dup WHILE + >r >r 2dup r@ -text + 0= IF >r drop 2drop r> r> r> rot + 1- rdrop true EXIT THEN + r> r> 1 /string REPEAT + 2drop 2drop rdrop false ; + \ ROLL 17may93jaw : roll dup 1+ pick >r @@ -109,7 +120,11 @@ decimal variable span : expect ( c-addr +len -- ) - 0 rot over - BEGIN key decode >r 2over = r> or UNTIL - 2drop nip span ! ; + 0 rot over + BEGIN ( maxlen span c-addr pos1 ) + key decode ( maxlen span c-addr pos2 flag ) + >r 2over = r> or + UNTIL + type-rest drop + 2drop nip span ! ;