diff options
Diffstat (limited to 'tty.c')
-rw-r--r-- | tty.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* $Id: tty.c,v 1.56 2009-01-10 01:51:22 nicm Exp $ */ +/* $Id: tty.c,v 1.57 2009-01-10 22:28:40 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -411,7 +411,16 @@ tty_cmd_insertcharacter(struct tty *tty, unused struct screen *s, va_list ap) tty_reset(tty); - tty_emulate_repeat(tty, TTYC_ICH, TTYC_ICH1, ua); + if (tty_term_has(tty->term, TTYC_ICH) || + tty_term_has(tty->term, TTYC_ICH1)) + tty_emulate_repeat(tty, TTYC_ICH, TTYC_ICH1, ua); + else { + tty_putcode(tty, TTYC_SMIR); + while (ua-- > 0) + tty_putc(tty, ' '); + tty_putcode(tty, TTYC_RMIR); + tty_putcode2(tty, TTYC_CUP, s->cy, s->cx); + } } void |