1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-09-29 07:30:54 +10:00

Don't emit BS when at beginning of input buffer

This commit is contained in:
Virgil Dupras 2020-05-15 20:51:09 -04:00
parent aad713c477
commit b6c039589f
3 changed files with 8 additions and 8 deletions

View File

@ -1,10 +1,10 @@
( handle backspace: go back one char in IN>, if possible, then ( handle backspace: go back one char in IN>, if possible, then
emit SPC + BS ) emit BS + SPC + BS )
: (inbs) : (inbs)
( already at IN( ? ) ( already at IN( ? )
IN> @ IN( = IF EXIT THEN IN> @ IN( = IF EXIT THEN
IN> @ 1- IN> ! IN> @ 1- IN> !
SPC BS BS SPC BS
; ;
: KEY : KEY

View File

@ -1,12 +1,12 @@
: (rdlnc) ( -- f ) : (rdlnc) ( -- c )
( buffer overflow? same as if we typed a newline ) ( buffer overflow? same as if we typed a newline )
IN> @ IN) = IF 0x0a ELSE KEY THEN ( c ) IN> @ IN) = IF 0x0a ELSE KEY THEN ( c )
DUP 0x7f = IF DROP 0x8 THEN ( del? same as backspace ) DUP 0x7f = IF DROP 0x8 THEN ( del? same as backspace )
DUP 0x0a = IF DROP 0xd THEN ( lf? same as cr ) DUP 0x0a = IF DROP 0xd THEN ( lf? same as cr )
( echo back )
DUP EMIT ( c )
( bacspace? handle and exit ) ( bacspace? handle and exit )
DUP 0x8 = IF (inbs) EXIT THEN DUP 0x8 = IF (inbs) EXIT THEN
( echo back )
DUP EMIT ( c )
( write and advance ) ( write and advance )
DUP ( keep as result ) ( c c ) DUP ( keep as result ) ( c c )
( We take advantage of the fact that c's MSB is always zero and ( We take advantage of the fact that c's MSB is always zero and

Binary file not shown.