accept

 reads a line with with KEY into addr until n2 characters are reveived or cr/lf detected.

Stackeffects

( addr n1 -- n2 )
R( -- )

Definition

: accept
   dup    >r    >r
PFA_ACCEPT1: ; ( -- addr )
   key    dup (literal) 10   <>
(?branch) PFA_ACCEPT2
   dup (literal) 13   <>
(?branch) PFA_ACCEPT2
   dup (literal) 8   =
(?branch) PFA_ACCEPT3
   r>    r@    over    >r    =
(?branch) PFA_ACCEPT5
   drop
(branch) PFA_ACCEPT1

PFA_ACCEPT5:
   dup    emit    space    emit    1-    r>    1+
(branch) PFA_ACCEPT4

PFA_ACCEPT3:
   dup    bl    <
(?branch) PFA_ACCEPT6
   drop    bl
PFA_ACCEPT6:
   dup    emit    over    c!    1+    r>    1-
PFA_ACCEPT4:
   dup    >r    0=
(?branch) PFA_ACCEPT1
   dup
PFA_ACCEPT2:
   /key    drop    drop    r>    r>    swap    -    cr
;

Used by

refill