: _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
    IBUF _type _rbufsz IBUF _blen 2DUP > IF
        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
    DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen )
    EDPOS +! EDPOS @ 64 / _pln
;