after EILSEQ (patch by Neil Booth). This fixes the
issue of rxvt-unicode not properly displaying text after an illegal
sequence on NetBSD and probably other systems.
+ - implement ESC [ 3 K as a more rational alternative to ESC [ 0 K.
- made tabs moveable (based on a patch by Petr Machata).
- support relative paths for RXVT_SOCKET in urxvtd.
- better diagnostic on 0x0 window geometries.
B<< C<Ps = 0> >> Clear to Right (default)
B<< C<Ps = 1> >> Clear to Left
B<< C<Ps = 2> >> Clear All
+ B<< C<Ps = 3> >> Like Ps = 0, but is ignored when wrapped
+ (@@RXVT_NAME@@ extension)
=end table
* XTERM_SEQ: Clear line to right: ESC [ 0 K
* XTERM_SEQ: Clear line to left : ESC [ 1 K
* XTERM_SEQ: Clear whole line : ESC [ 2 K
+ * extension: clear to right unless wrapped: ESC [ 3 K
*/
void
rxvt_term::scr_erase_line (int mode) NOTHROW
switch (mode)
{
+ case 3:
+ if (screen.flags & Screen_WrapNext)
+ return;
+
+ /* fall through */
+
case 0: /* erase to end of line */
col = screen.cur.col;
num = ncol - col;
min_it (line.l, col);
+
if (ROWCOL_IN_ROW_AT_OR_AFTER (selection.beg, screen.cur)
|| ROWCOL_IN_ROW_AT_OR_AFTER (selection.end, screen.cur))
CLEAR_SELECTION ();
break;
+
case 1: /* erase to beginning of line */
col = 0;
num = screen.cur.col + 1;
+
if (ROWCOL_IN_ROW_AT_OR_BEFORE (selection.beg, screen.cur)
|| ROWCOL_IN_ROW_AT_OR_BEFORE (selection.end, screen.cur))
CLEAR_SELECTION ();
break;
+
case 2: /* erase whole line */
col = 0;
num = ncol;