From feb0411530b7e2241129741c76b2d91c423ae34f Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Wed, 6 May 2020 21:10:27 -0400 Subject: [PATCH] editor: simplify I with the use of MOVE- Also, delay the shadowing of DO..LOOP's I for as long as possible. --- blk/102 | 4 ++-- blk/108 | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/blk/102 b/blk/102 index 26ad3bc..3995ae6 100644 --- a/blk/102 +++ b/blk/102 @@ -12,5 +12,5 @@ ENDCASE AGAIN ; - - +( I masks DO..LOOP's I. Do it as late as possible. ) +: I _I ; diff --git a/blk/108 b/blk/108 index 8000e80..c230ad8 100644 --- a/blk/108 +++ b/blk/108 @@ -1,16 +1,15 @@ : _ilen ( length of str in IBUF ) IBUF BEGIN C@+ EOL? UNTIL IBUF - 1- ; -: I - IBUF _type EDPOS @ 64 /MOD ( cno lno ) - 1+ 64 * _cpos ( cno next-line-ptr ) - SWAP 63 -^ _ilen ( nlp nb-of-chars-to-move ilen ) +: _I + IBUF _type EDPOS @ 64 MOD ( cno ) + 63 -^ _ilen ( rbuffsize ilen ) 2DUP > IF - SWAP OVER - 1+ ( nlp ilen nbc ) 0 DO ( a ilen ) - SWAP 1- 2DUP -^ ( ilen a-1 a-ilen-1 ) C@ OVER C! - SWAP ( a ilen ) - LOOP - ELSE DROP ( ilen becomes nbc ) + SWAP OVER - ( ilen chars-to-move ) + SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen ) + 3 PICK MOVE- ( ctm ilen ) + SWAP DROP ( ilen ) + ELSE DROP ( ilen becomes rbuffsize ) THEN - SWAP DROP DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) + DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) EDPOS +! EDPOS @ 64 / _pln ;