Author: ed
Date: Fri Nov  5 00:56:21 2010
New Revision: 214817
URL: http://svn.freebsd.org/changeset/base/214817

Log:
  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

Modified:
  head/sys/teken/sequences
  head/sys/teken/teken_subr_compat.h

Modified: head/sys/teken/sequences
==============================================================================
--- head/sys/teken/sequences    Fri Nov  5 00:31:09 2010        (r214816)
+++ head/sys/teken/sequences    Fri Nov  5 00:56:21 2010        (r214817)
@@ -106,6 +106,7 @@ C25ADFG     Cons25 set adapter foreground           ^
 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

Modified: head/sys/teken/teken_subr_compat.h
==============================================================================
--- head/sys/teken/teken_subr_compat.h  Fri Nov  5 00:31:09 2010        
(r214816)
+++ head/sys/teken/teken_subr_compat.h  Fri Nov  5 00:56:21 2010        
(r214817)
@@ -88,6 +88,20 @@ teken_subr_cons25_set_bell_pitch_duratio
 }
 
 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)
 {
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to