Add support for blink screen attribute
authorMarcin Kulik <marcin.kulik@gmail.com>
Sat, 17 Aug 2013 10:33:36 +0000 (12:33 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Mon, 19 Aug 2013 21:25:47 +0000 (23:25 +0200)
The blink attribute is enabled via m-CSI 5 and disabled via 25. It's up to
the renderer to do anything useful with it.

Signed-off-by: Marcin Kulik <m@ku1ik.com>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
src/libtsm.h
src/tsm_vte.c

index b6325ee..7a24d7d 100644 (file)
@@ -139,6 +139,7 @@ struct tsm_screen_attr {
        unsigned int underline : 1;     /* underlined character */
        unsigned int inverse : 1;       /* inverse colors */
        unsigned int protect : 1;       /* cannot be erased */
+       unsigned int blink : 1;         /* blinking character */
 };
 
 typedef int (*tsm_screen_prepare_cb) (struct tsm_screen *con,
index bafc7ae..111678f 100644 (file)
@@ -550,6 +550,7 @@ static void reset_state(struct tsm_vte *vte)
        vte->saved_state.cattr.underline = 0;
        vte->saved_state.cattr.inverse = 0;
        vte->saved_state.cattr.protect = 0;
+       vte->saved_state.cattr.blink = 0;
 }
 
 static void save_state(struct tsm_vte *vte)
@@ -1039,6 +1040,7 @@ static void csi_attribute(struct tsm_vte *vte)
                        vte->cattr.bold = 0;
                        vte->cattr.underline = 0;
                        vte->cattr.inverse = 0;
+                       vte->cattr.blink = 0;
                        break;
                case 1:
                        vte->cattr.bold = 1;
@@ -1046,6 +1048,9 @@ static void csi_attribute(struct tsm_vte *vte)
                case 4:
                        vte->cattr.underline = 1;
                        break;
+               case 5:
+                       vte->cattr.blink = 1;
+                       break;
                case 7:
                        vte->cattr.inverse = 1;
                        break;
@@ -1055,6 +1060,9 @@ static void csi_attribute(struct tsm_vte *vte)
                case 24:
                        vte->cattr.underline = 0;
                        break;
+               case 25:
+                       vte->cattr.blink = 0;
+                       break;
                case 27:
                        vte->cattr.inverse = 0;
                        break;