version 1.1, 2004/12/12 20:14:07
|
version 1.2, 2004/12/12 20:24:00
|
Line 82
|
Line 82
|
>r >string over r@ u8len + swap move 2dup chars + r@ swap u8!+ drop |
>r >string over r@ u8len + swap move 2dup chars + r@ swap u8!+ drop |
r> u8len >r rot r@ chars + -rot r> chars + .all .rest ; |
r> u8len >r rot r@ chars + -rot r> chars + .all .rest ; |
: u8back ( max span addr pos1 -- max span addr pos2 f ) |
: u8back ( max span addr pos1 -- max span addr pos2 f ) |
dup IF over + u8<< over - 0 max |
dup IF over + u8<< over - 0 max .all .rest |
ELSE #bell emit THEN .rest 0 ; |
ELSE #bell emit THEN 0 ; |
: u8forw ( max span addr pos1 -- max span addr pos2 f ) |
: u8forw ( max span addr pos1 -- max span addr pos2 f ) |
2 pick over <> IF over + u8@+ u8emit over - ELSE #bell emit THEN 0 ; |
2 pick over <> IF over + u8@+ u8emit over - ELSE #bell emit THEN 0 ; |
: (u8del) ( max span addr pos1 -- max span addr pos2 ) |
: (u8del) ( max span addr pos1 -- max span addr pos2 ) |