diff options
author | Oliver Kiddle <okiddle@yahoo.co.uk> | 2018-11-05 22:24:10 +0100 |
---|---|---|
committer | Oliver Kiddle <okiddle@yahoo.co.uk> | 2018-11-05 22:24:12 +0100 |
commit | 50597692e021ee071b971e13a14dde5b22d31639 (patch) | |
tree | f74091a18120948924023914b0f5198331bdb243 /Src/zsh.h | |
parent | 37d0005a9e651f366076c930019464d162506a57 (diff) | |
download | zsh-50597692e021ee071b971e13a14dde5b22d31639.tar.gz zsh-50597692e021ee071b971e13a14dde5b22d31639.tar.xz zsh-50597692e021ee071b971e13a14dde5b22d31639.zip |
43759: add support for true colour terminals
Diffstat (limited to 'Src/zsh.h')
-rw-r--r-- | Src/zsh.h | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/Src/zsh.h b/Src/zsh.h index 68731e226..10897372b 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -2633,6 +2633,12 @@ struct ttyinfo { * Text attributes for displaying in ZLE */ +#ifdef HAVE_STDINT_H + typedef uint64_t zattr; +#else + typedef zulong zattr; +#endif + #define TXTBOLDFACE 0x0001 #define TXTSTANDOUT 0x0002 #define TXTUNDERLINE 0x0004 @@ -2664,32 +2670,41 @@ struct ttyinfo { */ #define TXT_MULTIWORD_MASK 0x0400 +/* used when, e.g an invalid colour is specified */ +#define TXT_ERROR 0x0800 + /* Mask for colour to use in foreground */ -#define TXT_ATTR_FG_COL_MASK 0x000FF000 +#define TXT_ATTR_FG_COL_MASK 0x000000FFFFFF0000 /* Bits to shift the foreground colour */ -#define TXT_ATTR_FG_COL_SHIFT (12) +#define TXT_ATTR_FG_COL_SHIFT (16) /* Mask for colour to use in background */ -#define TXT_ATTR_BG_COL_MASK 0x0FF00000 +#define TXT_ATTR_BG_COL_MASK 0xFFFFFF0000000000 /* Bits to shift the background colour */ -#define TXT_ATTR_BG_COL_SHIFT (20) +#define TXT_ATTR_BG_COL_SHIFT (40) /* Flag to use termcap AF sequence to set colour, if available */ -#define TXT_ATTR_FG_TERMCAP 0x10000000 +#define TXT_ATTR_FG_TERMCAP 0x1000 /* Flag to use termcap AB sequence to set colour, if available */ -#define TXT_ATTR_BG_TERMCAP 0x20000000 +#define TXT_ATTR_BG_TERMCAP 0x2000 + +/* Flag to indicate that foreground is a 24-bit colour */ +#define TXT_ATTR_FG_24BIT 0x4000 +/* Flag to indicate that background is a 24-bit colour */ +#define TXT_ATTR_BG_24BIT 0x8000 /* Things to turn on, including values for the colour elements */ #define TXT_ATTR_ON_VALUES_MASK \ (TXT_ATTR_ON_MASK|TXT_ATTR_FG_COL_MASK|TXT_ATTR_BG_COL_MASK|\ - TXT_ATTR_FG_TERMCAP|TXT_ATTR_BG_TERMCAP) + TXT_ATTR_FG_TERMCAP|TXT_ATTR_BG_TERMCAP|\ + TXT_ATTR_FG_24BIT|TXT_ATTR_BG_24BIT) /* Mask out everything to do with setting a foreground colour */ #define TXT_ATTR_FG_ON_MASK \ - (TXTFGCOLOUR|TXT_ATTR_FG_COL_MASK|TXT_ATTR_FG_TERMCAP) + (TXTFGCOLOUR|TXT_ATTR_FG_COL_MASK|TXT_ATTR_FG_TERMCAP|TXT_ATTR_FG_24BIT) /* Mask out everything to do with setting a background colour */ #define TXT_ATTR_BG_ON_MASK \ - (TXTBGCOLOUR|TXT_ATTR_BG_COL_MASK|TXT_ATTR_BG_TERMCAP) + (TXTBGCOLOUR|TXT_ATTR_BG_COL_MASK|TXT_ATTR_BG_TERMCAP|TXT_ATTR_BG_24BIT) /* Mask out everything to do with activating colours */ #define TXT_ATTR_COLOUR_ON_MASK \ |