
Support the entire 256-color palette. When specifying an index or RGB color, find the nearest match in the console palette. Preserve bold and underline when setting color by index. Getting all palette entries will stop at 15 if the initial index is below that (i.e. `0;*` will get 0 to 15 and `16;*` will get 16 to 255).
59 lines
2.9 KiB
C
59 lines
2.9 KiB
C
// Legacy console colors for XP (later systems get the actual palette).
|
|
|
|
static const COLORREF legacy_palette[] =
|
|
{
|
|
0x000000, 0x800000, 0x008000, 0x808000, 0x000080, 0x800080, 0x008080, 0xC0C0C0,
|
|
0x808080, 0xFF0000, 0x00FF00, 0xFFFF00, 0x0000FF, 0xFF00FF, 0x00FFFF, 0xFFFFFF,
|
|
};
|
|
|
|
// This is the Windows (10.0.15063) version of the xterm 256-color palette.
|
|
|
|
static const COLORREF xterm_palette[] =
|
|
{
|
|
// 16 system colors left out.
|
|
|
|
// RGB 6x6x6 color cube.
|
|
0x000000, 0x5F0000, 0x870000, 0xAF0000, 0xD70000, 0xFF0000,
|
|
0x005F00, 0x5F5F00, 0x875F00, 0xAF5F00, 0xD75F00, 0xFF5F00,
|
|
0x008700, 0x5F8700, 0x878700, 0xAF8700, 0xD78700, 0xFF8700,
|
|
0x00AF00, 0x5FAF00, 0x87AF00, 0xAFAF00, 0xD7AF00, 0xFFAF00,
|
|
0x00D700, 0x5FD700, 0x87D700, 0xAFD700, 0xD7D700, 0xFFD700,
|
|
0x00FF00, 0x5FFF00, 0x87FF00, 0xAFFF00, 0xD7FF00, 0xFFFF00,
|
|
0x00005F, 0x5F005F, 0x87005F, 0xAF005F, 0xD7005F, 0xFF005F,
|
|
0x005F5F, 0x5F5F5F, 0x875F5F, 0xAF5F5F, 0xD75F5F, 0xFF5F5F,
|
|
0x00875F, 0x5F875F, 0x87875F, 0xAF875F, 0xD7875F, 0xFF875F,
|
|
0x00AF5F, 0x5FAF5F, 0x87AF5F, 0xAFAF5F, 0xD7AF5F, 0xFFAF5F,
|
|
0x00D75F, 0x5FD75F, 0x87D75F, 0xAFD75F, 0xD7D75F, 0xFFD75F,
|
|
0x00FF5F, 0x5FFF5F, 0x87FF5F, 0xAFFF5F, 0xD7FF5F, 0xFFFF5F,
|
|
0x000087, 0x5F0087, 0x870087, 0xAF0087, 0xD70087, 0xFF0087,
|
|
0x005F87, 0x5F5F87, 0x875F87, 0xAF5F87, 0xD75F87, 0xFF5F87,
|
|
0x008787, 0x5F8787, 0x878787, 0xAF8787, 0xD78787, 0xFF8787,
|
|
0x00AF87, 0x5FAF87, 0x87AF87, 0xAFAF87, 0xD7AF87, 0xFFAF87,
|
|
0x00D787, 0x5FD787, 0x87D787, 0xAFD787, 0xD7D787, 0xFFD787,
|
|
0x00FF87, 0x5FFF87, 0x87FF87, 0xAFFF87, 0xD7FF87, 0xFFFF87,
|
|
0x0000AF, 0x5F00AF, 0x8700AF, 0xAF00AF, 0xD700AF, 0xFF00AF,
|
|
0x005FAF, 0x5F5FAF, 0x875FAF, 0xAF5FAF, 0xD75FAF, 0xFF5FAF,
|
|
0x0087AF, 0x5F87AF, 0x8787AF, 0xAF87AF, 0xD787AF, 0xFF87AF,
|
|
0x00AFAF, 0x5FAFAF, 0x87AFAF, 0xAFAFAF, 0xD7AFAF, 0xFFAFAF,
|
|
0x00D7AF, 0x5FD7AF, 0x87D7AF, 0xAFD7AF, 0xD7D7AF, 0xFFD7AF,
|
|
0x00FFAF, 0x5FFFAF, 0x87FFAF, 0xAFFFAF, 0xD7FFAF, 0xFFFFAF,
|
|
0x0000D7, 0x5F00D7, 0x8700D7, 0xAF00D7, 0xD700D7, 0xFF00D7,
|
|
0x005FD7, 0x5F5FD7, 0x875FD7, 0xAF5FD7, 0xD75FD7, 0xFF5FD7,
|
|
0x0087D7, 0x5F87D7, 0x8787D7, 0xAF87D7, 0xD787D7, 0xFF87D7,
|
|
0x00AFDF, 0x5FAFDF, 0x87AFDF, 0xAFAFDF, 0xD7AFDF, 0xFFAFDF, // xterm uses
|
|
0x00D7DF, 0x5FD7DF, 0x87D7DF, 0xAFD7DF, 0xD7D7DF, 0xFFD7DF, // R = 0xD7
|
|
0x00FFDF, 0x5FFFDF, 0x87FFDF, 0xAFFFDF, 0xD7FFDF, 0xFFFFDF, // here
|
|
0x0000FF, 0x5F00FF, 0x8700FF, 0xAF00FF, 0xD700FF, 0xFF00FF,
|
|
0x005FFF, 0x5F5FFF, 0x875FFF, 0xAF5FFF, 0xD75FFF, 0xFF5FFF,
|
|
0x0087FF, 0x5F87FF, 0x8787FF, 0xAF87FF, 0xD787FF, 0xFF87FF,
|
|
0x00AFFF, 0x5FAFFF, 0x87AFFF, 0xAFAFFF, 0xD7AFFF, 0xFFAFFF,
|
|
0x00D7FF, 0x5FD7FF, 0x87D7FF, 0xAFD7FF, 0xD7D7FF, 0xFFD7FF,
|
|
0x00FFFF, 0x5FFFFF, 0x87FFFF, 0xAFFFFF, 0xD7FFFF, 0xFFFFFF,
|
|
|
|
// Grayscale, without black or white.
|
|
0x080808, 0x121212, 0x1C1C1C, 0x262626, 0x303030, 0x3A3A3A,
|
|
0x444444, 0x4E4E4E, 0x585858, 0x626262, 0x6C6C6C, 0x767676,
|
|
0x808080, 0x8A8A8A, 0x949494, 0x9E9E9E, 0xA8A8A8, 0xB2B2B2,
|
|
0xBCBCBC, 0xC6C6C6, 0xD0D0D0, 0xDADADA, 0xE4E4E4, 0xEEEEEE,
|
|
};
|