Partially implement the mysterious cons25 \e[x escape sequence.

It seems the terminfo library on some systems (OS X, Linux) may emit the
sequence \e[x to reset to default attributes. Apart from using the
zero-command, this escape sequence allows many more operations, such as
setting ANSI colors. I don't see this used anywhere, so this should be
sufficient for now.

This deficiency was spotted by the Debian GNU/kFreeBSD. They have their
own patch, which is slightly flawed in my opinion. I don't know why they
never reported this issue to us.

MFC after:	1 week
This commit is contained in:
Ed Schouten 2010-11-05 00:56:21 +00:00
parent 6df3eebb63
commit 68fdfe2926
2 changed files with 15 additions and 0 deletions

View file

@ -106,6 +106,7 @@ C25ADFG Cons25 set adapter foreground ^[ [ = F r
C25BLPD Cons25 set bell pitch duration ^[ [ = B r r
C25CURS Cons25 set cursor type ^[ [ = S r
C25MODE Cons25 set terminal mode ^[ [ = T r
C25SGR Cons25 set graphic rendition ^[ [ x r r
C25VTSW Cons25 switch virtual terminal ^[ [ z r
# VT52 compatibility

View file

@ -87,6 +87,20 @@ teken_subr_cons25_set_bell_pitch_duration(teken_t *t, unsigned int pitch,
(duration & 0xffff));
}
static void
teken_subr_cons25_set_graphic_rendition(teken_t *t, unsigned int cmd,
unsigned int param __unused)
{
switch (cmd) {
case 0: /* Reset. */
t->t_curattr = t->t_defattr;
break;
default:
teken_printf("unsupported attribute %u\n", cmd);
}
}
static void
teken_subr_cons25_set_terminal_mode(teken_t *t, unsigned int mode)
{