X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/5d17ccfcfb6aaa0fe7b3fb1d90ffde20a1013cc1..c50f9fde681e3dbeda57c89c34fce633e567901a:/putty.h?ds=sidebyside diff --git a/putty.h b/putty.h index d880dbe2..b6aace7f 100644 --- a/putty.h +++ b/putty.h @@ -36,6 +36,11 @@ typedef struct terminal_tag Terminal; * * The LATTRs (line attributes) are an entirely disjoint space of * flags. + * + * The DATTRs (display attributes) are internal to terminal.c (but + * defined here because their values have to match the others + * here); they reuse the TATTR_* space but are always masked off + * before sending to the front end. * * ATTR_INVALID is an illegal colour combination. */ @@ -45,6 +50,12 @@ typedef struct terminal_tag Terminal; #define TATTR_RIGHTCURS 0x10000000UL /* cursor-on-RHS */ #define TATTR_COMBINING 0x80000000UL /* combining characters */ +#define DATTR_STARTRUN 0x80000000UL /* start of redraw run */ + +#define TDATTR_MASK 0xF0000000UL +#define TATTR_MASK (TDATTR_MASK) +#define DATTR_MASK (TDATTR_MASK) + #define LATTR_NORM 0x00000000UL #define LATTR_WIDE 0x00000001UL #define LATTR_TOP 0x00000002UL @@ -53,7 +64,7 @@ typedef struct terminal_tag Terminal; #define LATTR_WRAPPED 0x00000010UL #define LATTR_WRAPPED2 0x00000020UL -#define ATTR_INVALID 0x03FFU +#define ATTR_INVALID 0x03FFFFU /* Like Linux use the F000 page for direct to font. */ #define CSET_OEMCP 0x0000F000UL /* OEM Codepage DTF */ @@ -80,24 +91,40 @@ typedef struct terminal_tag Terminal; */ #define UCSWIDE 0xDFFF -#define ATTR_NARROW 0x8000U -#define ATTR_WIDE 0x4000U -#define ATTR_BOLD 0x0400U -#define ATTR_UNDER 0x0800U -#define ATTR_REVERSE 0x1000U -#define ATTR_BLINK 0x2000U -#define ATTR_FGMASK 0x001FU -#define ATTR_BGMASK 0x03E0U -#define ATTR_COLOURS 0x03FFU +#define ATTR_NARROW 0x800000U +#define ATTR_WIDE 0x400000U +#define ATTR_BOLD 0x040000U +#define ATTR_UNDER 0x080000U +#define ATTR_REVERSE 0x100000U +#define ATTR_BLINK 0x200000U +#define ATTR_FGMASK 0x0001FFU +#define ATTR_BGMASK 0x03FE00U +#define ATTR_COLOURS 0x03FFFFU #define ATTR_FGSHIFT 0 -#define ATTR_BGSHIFT 5 +#define ATTR_BGSHIFT 9 -#define ATTR_DEFAULT 0x0128U /* bg 9, fg 8 */ -#define ATTR_DEFFG 0x0008U -#define ATTR_DEFBG 0x0120U - -#define ATTR_CUR_AND (~(ATTR_BOLD|ATTR_REVERSE|ATTR_BLINK|ATTR_COLOURS)) -#define ATTR_CUR_XOR 0x016AU +/* + * The definitive list of colour numbers stored in terminal + * attribute words is kept here. It is: + * + * - 0-7 are ANSI colours (KRGYBMCW). + * - 8-15 are the bold versions of those colours. + * - 16-255 are the remains of the xterm 256-colour mode (a + * 216-colour cube with R at most significant and B at least, + * followed by a uniform series of grey shades running between + * black and white but not including either on grounds of + * redundancy). + * - 256 is default foreground + * - 257 is default bold foreground + * - 258 is default background + * - 259 is default bold background + * - 260 is cursor foreground + * - 261 is cursor background + */ + +#define ATTR_DEFFG (256 << ATTR_FGSHIFT) +#define ATTR_DEFBG (258 << ATTR_BGSHIFT) +#define ATTR_DEFAULT (ATTR_DEFFG | ATTR_DEFBG) struct sesslist { int nsessions; @@ -436,6 +463,7 @@ struct config_tag { Filename logfilename; int logtype; int logxfovr; + int logflush; int logomitpass; int logomitdata; int hide_mouseptr; @@ -447,6 +475,7 @@ struct config_tag { int bidi; /* Colour options */ int ansi_colour; + int xterm_256_colour; int system_colour; int try_palette; int bold_colour;