version 1.9, 2001/05/10 08:28:32
|
version 1.10, 2003/01/02 21:40:22
|
Line 46 defer everychar
|
Line 46 defer everychar
|
' noop IS everychar |
' noop IS everychar |
|
|
: decode ( max span addr pos1 key -- max span addr pos2 flag ) |
: decode ( max span addr pos1 key -- max span addr pos2 flag ) |
everychar |
everychar |
dup #del = IF drop #bs THEN \ del is rubout |
dup -1 = IF drop 4 THEN \ -1 is EOF |
dup bl u< IF cells ctrlkeys + perform EXIT THEN |
dup #del = IF drop #bs THEN \ del is rubout |
\ check for end reached |
dup bl u< IF cells ctrlkeys + perform EXIT THEN |
>r 2over = IF rdrop bell 0 EXIT THEN |
\ check for end reached |
r> insert-char 0 ; |
>r 2over = IF rdrop bell 0 EXIT THEN |
|
r> insert-char 0 ; |
|
|
: edit-line ( c-addr n1 n2 -- n3 ) \ gforth |
: edit-line ( c-addr n1 n2 -- n3 ) \ gforth |
\G edit the string with length @var{n2} in the buffer @var{c-addr |
\G edit the string with length @var{n2} in the buffer @var{c-addr |
\G n1}, like @code{accept}. |
\G n1}, like @code{accept}. |
rot over |
rot over |
2dup type |
2dup type |
BEGIN key decode UNTIL |
BEGIN key decode UNTIL |
2drop nip ; |
2drop nip ; |
|
|
: accept ( c-addr +n1 -- +n2 ) \ core |
: accept ( c-addr +n1 -- +n2 ) \ core |