X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=forth.jl.git;a=blobdiff_plain;f=src%2Flib_5_strings.4th;h=9fef1452de054342d241ec47665eb5c7a85089bd;hp=99d1d394720177946f02dda30143d331e717be58;hb=824a4be938c62e1254237eef0315d9248ab68dc5;hpb=3c35d5caec5303e84c5de9dde74759f38280a3d3 diff --git a/src/lib_5_strings.4th b/src/lib_5_strings.4th index 99d1d39..9fef145 100644 --- a/src/lib_5_strings.4th +++ b/src/lib_5_strings.4th @@ -3,6 +3,7 @@ : CMOVE ( src dest length -- ) DUP 0<= IF + DROP DROP DROP EXIT THEN @@ -18,6 +19,24 @@ DROP ; +: CMOVE> ( src dest length -- ) + DUP 0<= IF + DROP DROP DROP + EXIT + THEN + + -ROT OVER - ( length src (dest-src) ) + -ROT DUP ROT + 1- ( (dest-src) src (src+length-1) ) + + DO + I @ + OVER I + + ! + -1 +LOOP + + DROP +; + : S" IMMEDIATE ( -- addr len ) STATE @ IF ( compiling? ) ['] LITSTRING , ( compile LITSTRING )