1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-31 16:21:26 +03:00

terminal: extend RGB attributes

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.
This commit is contained in:
David Herrmann 2014-07-18 12:41:37 +02:00
parent 1716f6dcf5
commit 952f4b5959

View File

@ -145,6 +145,11 @@ static inline void term_char_freep(term_char_t *p) {
*/ */
enum { 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 */ /* dark color-codes */
TERM_CCODE_BLACK, TERM_CCODE_BLACK,
TERM_CCODE_RED, TERM_CCODE_RED,
@ -165,16 +170,12 @@ enum {
TERM_CCODE_LIGHT_CYAN = TERM_CCODE_CYAN + 8, TERM_CCODE_LIGHT_CYAN = TERM_CCODE_CYAN + 8,
TERM_CCODE_LIGHT_WHITE = TERM_CCODE_WHITE + 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, TERM_CCODE_CNT,
}; };
struct term_color { struct term_color {
uint8_t ccode; uint8_t ccode;
uint8_t c256;
uint8_t red; uint8_t red;
uint8_t green; uint8_t green;
uint8_t blue; uint8_t blue;
@ -190,6 +191,7 @@ struct term_attr {
unsigned int inverse : 1; /* inverse fg/bg */ unsigned int inverse : 1; /* inverse fg/bg */
unsigned int protect : 1; /* protect from erase */ unsigned int protect : 1; /* protect from erase */
unsigned int blink : 1; /* blink text */ unsigned int blink : 1; /* blink text */
unsigned int hidden : 1; /* hidden */
}; };
/* /*