editor: implement E

This commit is contained in:
Virgil Dupras 2020-05-07 08:44:17 -04:00
parent 204a9c69f8
commit be66d7b4a2
4 changed files with 17 additions and 8 deletions

View File

@ -2,8 +2,8 @@ T ( n -- ): select line n for editing.
P xxx: put typed line on selected line. P xxx: put typed line on selected line.
U xxx: insert typed line on selected line. U xxx: insert typed line on selected line.
F xxx: find typed string in block. F xxx: find typed string in block.
I xxx: insert typed string at cursor I xxx: insert typed string at cursor.
E: Delete previously found string.

View File

@ -1,5 +1,5 @@
50 LOAD+ ( B152, extras ) 50 LOAD+ ( B152, extras )
1 6 LOADR+ 1 7 LOADR+
: BROWSE : BROWSE
0 ACC ! L 0 ACC ! L

10
blk/108
View File

@ -1,9 +1,9 @@
: _ilen ( length of str in IBUF ) : _blen ( buf -- length of str in buf )
IBUF BEGIN C@+ EOL? UNTIL IBUF - 1- ; DUP BEGIN C@+ EOL? UNTIL -^ 1- ;
: _rbufsz ( size of linebuf to the right of curpos )
EDPOS @ 64 MOD 63 -^ ;
: _I : _I
IBUF _type EDPOS @ 64 MOD ( cno ) IBUF _type _rbufsz IBUF _blen 2DUP > IF
63 -^ _ilen ( rbuffsize ilen )
2DUP > IF
SWAP OVER - ( ilen chars-to-move ) SWAP OVER - ( ilen chars-to-move )
SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen ) SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen )
3 PICK MOVE- ( ctm ilen ) 3 PICK MOVE- ( ctm ilen )

9
blk/109 Normal file
View File

@ -0,0 +1,9 @@
: E
FBUF _blen EDPOS @ _cpos 2DUP + ( l a1 a1+l )
SWAP _rbufsz MOVE ( l )
( get to next line - l )
DUP EDPOS @ 0xffc0 AND 0x40 + -^ _cpos ( l a )
SWAP 0 FILL
EDPOS @ 64 / _pln
;