Linux rxvt doesn't support parm_dch or delete_character.

This commit is contained in:
Nicholas Marriott 2008-05-10 12:50:25 +00:00
parent 58ca26cefa
commit 0dbbd777b1
2 changed files with 7 additions and 8 deletions

View File

@ -23,7 +23,7 @@
* Big internal reorganisation. Rather than leaving control of the tty solely in * Big internal reorganisation. Rather than leaving control of the tty solely in
the client and piping all data through a socket to it, change so that the the client and piping all data through a socket to it, change so that the
server opens the tty again and reads and writes to it directly. This avoids server opens the tty again and reads and writes to it directly. This avoids
a lot of buffering and copying.Also reorganise the redrawing stuff so that a lot of buffering and copying. Also reorganise the redrawing stuff so that
everything goes through screen_draw_* - this makes the code simpler, but everything goes through screen_draw_* - this makes the code simpler, but
still needs broken up more, and all the ways of writing to screens should be still needs broken up more, and all the ways of writing to screens should be
more consistent. more consistent.
@ -303,4 +303,4 @@
(including mutt, emacs). No status bar yet and no key remapping or other (including mutt, emacs). No status bar yet and no key remapping or other
customisation. customisation.
$Id: CHANGES,v 1.92 2008-01-02 19:22:21 nicm Exp $ $Id: CHANGES,v 1.93 2008-05-10 12:50:25 nicm Exp $

11
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.18 2008-01-02 19:22:21 nicm Exp $ */ /* $Id: tty.c,v 1.19 2008-05-10 12:50:25 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -255,10 +255,6 @@ tty_find_term(char *name, int fd, char **cause)
xasprintf(cause, "parm_ich missing"); xasprintf(cause, "parm_ich missing");
goto error; goto error;
} }
if (parm_dch == NULL && delete_character == NULL) {
xasprintf(cause, "parm_dch missing");
goto error;
}
if (scroll_reverse == NULL) { if (scroll_reverse == NULL) {
xasprintf(cause, "scroll_reverse missing"); xasprintf(cause, "scroll_reverse missing");
goto error; goto error;
@ -477,9 +473,12 @@ tty_vwrite(struct tty *tty, unused struct screen *s, int cmd, va_list ap)
ua = va_arg(ap, u_int); ua = va_arg(ap, u_int);
if (parm_dch != NULL) if (parm_dch != NULL)
tty_puts(tty, tparm(parm_dch, ua)); tty_puts(tty, tparm(parm_dch, ua));
else { else if (delete_character != NULL) {
while (ua-- > 0) while (ua-- > 0)
tty_puts(tty, delete_character); tty_puts(tty, delete_character);
} else {
while (ua-- > 0)
tty_putc(tty, '\008');
} }
break; break;
case TTY_CURSORON: case TTY_CURSORON: