\ 4tH library - TOOLBELT BACK - Copyright 2004,2007 J.L. Bezemer \ You can redistribute this file and/or modify it under \ the terms of the GNU General Public License [UNDEFINED] BACK [IF] : BACK ( addr1 n1 c -- addr1 n2 ) >R BEGIN DUP IF OVER OVER 1- CHARS + C@ R@ <> ELSE DUP THEN WHILE 1- REPEAT R> DROP ; : -SCAN OVER >R BACK R> OVER - >R CHARS + R> -1 /STRING ; : (SPLIT) ( a1 n1 a2 n2 -- a2 n2 a1 n1-n2 n2) DUP >R ROT >R ROT R> R@ - R> ; : /SPLIT ( a1 n1 a2 n2 -- a2 n2 a1 n1-n2) (SPLIT) DROP ; : -SPLIT ( a1 n1 a2 n2 -- a2 n2 a1+n2 n1-n2) (SPLIT) CHARS ROT + SWAP ; [DEFINED] 4TH# [IF] hide (SPLIT) [THEN] [THEN]