|
- \ An extended string is essentially the same
- \ as a counted string, with the only difference that
- \ instead of storing max 1 char length of a string,
- \ we can store up to cell sized strings.
-
- \ Copy an extended string to
- : xplace ( c-addr u a-addr -- )
- swap dup >r over ! ( c-addr a-addr )
- cell + r> move ;
- : xcount ( a-addr -- c-addr u )
- dup cell + swap @ ;
- : +xplace ( c-addr u a-addr -- )
- 2dup >r >r xcount ( c-addr u c-addr u )
- + swap ( c-addr a-addr u )
- move ( -- )
- r> r> +! ;
-
- \ single char
- create somechar 1 chars allot align
- : +xplace-char ( n a-addr -- )
- swap somechar c! somechar 1 rot +xplace ;
|