chiark / gitweb /
terminal: extend RGB attributes
authorDavid Herrmann <dh.herrmann@gmail.com>
Fri, 18 Jul 2014 10:41:37 +0000 (12:41 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Fri, 18 Jul 2014 10:53:41 +0000 (12:53 +0200)
There're 3 supported color-modes: term-color-codes, 256-color-code and
rgb-color. We now use the term-color as default so zero(attr) will do what
you'd expect. Furthermore, we split rgb and 256color so users can forward
them properly without requiring an internal RGB converter.

Furthermore, a "hidden" field according to VT510rm manual is added.

src/libsystemd-terminal/term-internal.h

index af1c723..56ebd30 100644 (file)
@@ -145,6 +145,11 @@ static inline void term_char_freep(term_char_t *p) {
  */
 
 enum {
+        /* special color-codes */
+        TERM_CCODE_DEFAULT,                                             /* default foreground/background color */
+        TERM_CCODE_256,                                                 /* 256color code */
+        TERM_CCODE_RGB,                                                 /* color is specified as RGB */
+
         /* dark color-codes */
         TERM_CCODE_BLACK,
         TERM_CCODE_RED,
@@ -165,16 +170,12 @@ enum {
         TERM_CCODE_LIGHT_CYAN           = TERM_CCODE_CYAN + 8,
         TERM_CCODE_LIGHT_WHITE          = TERM_CCODE_WHITE + 8,
 
-        /* pseudo colors */
-        TERM_CCODE_FG,                                                  /* selected foreground color */
-        TERM_CCODE_BG,                                                  /* selected background color */
-        TERM_CCODE_RGB,                                                 /* color is specified as RGB */
-
         TERM_CCODE_CNT,
 };
 
 struct term_color {
         uint8_t ccode;
+        uint8_t c256;
         uint8_t red;
         uint8_t green;
         uint8_t blue;
@@ -190,6 +191,7 @@ struct term_attr {
         unsigned int inverse : 1;               /* inverse fg/bg */
         unsigned int protect : 1;               /* protect from erase */
         unsigned int blink : 1;                 /* blink text */
+        unsigned int hidden : 1;                /* hidden */
 };
 
 /*