mirror of
https://github.com/hsoft/collapseos.git
synced 2024-12-25 05:08:05 +11:00
4d893d90fc
Previously, it would keep the old buffer displayed why typing over it. I had kept it thus because I didn't want to erase the buffer right away because the behavior is that when we type nothing, we keep the buffer as-is and repeat the action. Now, the behavior of I and F is much better. It keeps the buffer displayed until the first non-return keystroke and then erases it. Also, fixed PSP leak in _type and fixed PSP overuse in successful _F (they balanced out).
16 lines
583 B
Plaintext
16 lines
583 B
Plaintext
: _blen ( buf -- length of str in buf )
|
|
DUP BEGIN C@+ EOL? UNTIL -^ 1- ;
|
|
: _rbufsz ( size of linebuf to the right of curpos )
|
|
EDPOS @ 64 MOD 63 -^ ;
|
|
: i COMPILE I ; IMMEDIATE ( save overshadowed )
|
|
: _I ( I without _pln and _type. used in VE )
|
|
_rbufsz IBUF _blen 2DUP > IF
|
|
TUCK - ( ilen chars-to-move )
|
|
SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen )
|
|
3 PICK MOVE- ( ctm ilen )
|
|
NIP ( ilen )
|
|
ELSE DROP ( ilen becomes rbuffsize )
|
|
THEN
|
|
DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) EDPOS +! BLK!! ;
|
|
: I IBUF _type _I EDPOS @ 64 / _pln ;
|