> Here is my string buffer mechanism (it uses allocated memory and could be set
to
> a fairly large setting):
>
And some tools to go with it:
\ ***************************************************************
\ User String Buffer Tools
\ ***************************************************************
CREATE MANY-BL HERE 80 ALLOT 80 BLANK
: >SPAD ( addr n -- )
/SPAD ( Next Buffer ) SPAD PLACE ;
: >zSPAD ( addr n -- )
/SPAD ( Next Buffer ) SPAD ZPLACE ;
: SPAD+ ( addr count -- ) SPAD APPEND ;
: SPACE>SPAD ( -- ) MANY-BL 1 SPAD+ ;
: SPACES>SPAD ( #spaces -- ) MANY-BL SWAP SPAD+ ;
: INIT-SPAD ( -- ) /SPAD ( Next Bufr ) SPAD OFF ;
: CHAR>SPAD ( char -- ) SP@ 1 SPAD+ DROP ;
: CR>SPAD ( -- ) \ Append a CR/LF
[CTRL] M CHAR>SPAD [CTRL] J CHAR>SPAD ;
: SPAD>Z ( -- ) \ Convert SPAD to zstring
0 SPAD COUNT + C! ;
: ZSPAD ( -- zaddr ) SPAD>Z SPAD 1+ ;
: SAVE-SPAD ( -- ) POSTPONE SPAD POSTPONE >R ; IMMEDIATE
: RESTORE-SPAD ( -- ) POSTPONE R> POSTPONE !SPAD ; IMMEDIATE
Received on Fri Oct 20 2000 - 12:21:15 PDT
Subscribe to our e-mail list service. It's free for all SwiftForth and SwiftX users!
This archive was generated 09-Feb-2012. Archive updated nightly.