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
;