diff --git a/src/ctcp/ctcp.c b/src/ctcp/ctcp.c index 33f81d7..ad0f15b 100644 --- a/src/ctcp/ctcp.c +++ b/src/ctcp/ctcp.c @@ -36,216 +36,51 @@ static int_least8_t ctcp_named_colors[] = { // CTCP to ANSI format mappings static short ansi_formats[] = { - [IRC_CTCP_BOLD] = 1, [IRC_CTCP_RESET] = 0, [IRC_CTCP_REVERSE] = 7, - [IRC_CTCP_ITALICS] = 3, [IRC_CTCP_STRIKETHROUGH] = 9, [IRC_CTCP_UNDERLINE] = 4, + [0x02] = 1, [0x0F] = 0, [0x16] = 7, [0x1D] = 3, [0x1E] = 9, [0x1F] = 4, }; // CTCP to ANSI color mappings +// See https://modern.ircdocs.horse/formatting.html static short ansi_colors[] = { - [IRC_CTCP_COLORS_WHITE] = 97, - [IRC_CTCP_COLORS_BLACK] = 30, - [IRC_CTCP_COLORS_BLUE] = 34, - [IRC_CTCP_COLORS_GREEN] = 32, - [IRC_CTCP_COLORS_RED] = 31, - [IRC_CTCP_COLORS_BROWN] = 94, - [IRC_CTCP_COLORS_MAGENTA] = 35, - [IRC_CTCP_COLORS_ORANGE] = 166, - [IRC_CTCP_COLORS_YELLOW] = 33, - [IRC_CTCP_COLORS_LIGHT_GREEN] = 92, - [IRC_CTCP_COLORS_CYAN] = 36, - [IRC_CTCP_COLORS_LIGHT_CYAN] = 96, - [IRC_CTCP_COLORS_LIGHT_BLUE] = 94, - [IRC_CTCP_COLORS_PINK] = 127, - [IRC_CTCP_COLORS_GREY] = 90, - [IRC_CTCP_COLORS_LIGHT_GREY] = 37, - [IRC_CTCP_COLORS_DEFAULT] = 39, - [16] = 52, /* See https://modern.ircdocs.horse/formatting.html */ - [17] = 94, - [18] = 100, - [19] = 58, - [20] = 22, - [21] = 29, - [22] = 23, - [23] = 24, - [24] = 17, - [25] = 54, - [26] = 53, - [27] = 89, - [28] = 88, - [29] = 130, - [30] = 142, - [31] = 64, - [32] = 28, - [33] = 35, - [34] = 30, - [35] = 25, - [36] = 18, - [37] = 91, - [38] = 90, - [39] = 125, - [40] = 124, - [41] = 166, - [42] = 184, - [43] = 106, - [44] = 34, - [45] = 49, - [46] = 37, - [47] = 33, - [48] = 19, - [49] = 129, - [50] = 127, - [51] = 161, - [52] = 196, - [53] = 208, - [54] = 226, - [55] = 154, - [56] = 46, - [57] = 86, - [58] = 51, - [59] = 75, - [60] = 21, - [61] = 171, - [62] = 201, - [63] = 198, - [64] = 203, - [65] = 215, - [66] = 227, - [67] = 191, - [68] = 83, - [69] = 122, - [70] = 87, - [71] = 111, - [72] = 63, - [73] = 177, - [74] = 207, - [75] = 205, - [76] = 217, - [77] = 223, - [78] = 229, - [79] = 193, - [80] = 157, - [81] = 158, - [82] = 159, - [83] = 153, - [84] = 147, - [85] = 183, - [86] = 219, - [87] = 212, - [88] = 16, - [89] = 233, - [90] = 235, - [91] = 237, - [92] = 239, - [93] = 241, - [94] = 244, - [95] = 247, - [96] = 250, - [97] = 254, - [98] = 231, + [0] = 97, [1] = 30, [2] = 34, [3] = 32, [4] = 31, [5] = 94, [6] = 35, [7] = 166, [8] = 33, [9] = 92, + [10] = 36, [11] = 96, [12] = 94, [13] = 127, [14] = 90, [15] = 37, [16] = 52, [17] = 94, [18] = 100, [19] = 58, + [20] = 22, [21] = 29, [22] = 23, [23] = 24, [24] = 17, [25] = 54, [26] = 53, [27] = 89, [28] = 88, [29] = 130, + [30] = 142, [31] = 64, [32] = 28, [33] = 35, [34] = 30, [35] = 25, [36] = 18, [37] = 91, [38] = 90, [39] = 125, + [40] = 124, [41] = 166, [42] = 184, [43] = 106, [44] = 34, [45] = 49, [46] = 37, [47] = 33, [48] = 19, [49] = 129, + [50] = 127, [51] = 161, [52] = 196, [53] = 208, [54] = 226, [55] = 154, [56] = 46, [57] = 86, [58] = 51, [59] = 75, + [60] = 21, [61] = 171, [62] = 201, [63] = 198, [64] = 203, [65] = 215, [66] = 227, [67] = 191, [68] = 83, [69] = 122, + [70] = 87, [71] = 111, [72] = 63, [73] = 177, [74] = 207, [75] = 205, [76] = 217, [77] = 223, [78] = 229, [79] = 193, + [80] = 157, [81] = 158, [82] = 159, [83] = 153, [84] = 147, [85] = 183, [86] = 219, [87] = 212, [88] = 16, [89] = 233, + [90] = 235, [91] = 237, [92] = 239, [93] = 241, [94] = 244, [95] = 247, [96] = 250, [97] = 254, [98] = 231, [99] = 39, }; // CTCP to RGB color mappings static rgbcolor rgb_maps[] = { - [IRC_CTCP_COLORS_WHITE] = { 0xFF, 0xFF, 0xFF }, - [IRC_CTCP_COLORS_BLACK] = { 0x00, 0x00, 0x00 }, - [IRC_CTCP_COLORS_BLUE] = { 0x00, 0x00, 0x7F }, - [IRC_CTCP_COLORS_GREEN] = { 0x00, 0x93, 0x00 }, - [IRC_CTCP_COLORS_RED] = { 0xFF, 0x00, 0x00 }, - [IRC_CTCP_COLORS_BROWN] = { 0x7F, 0x00, 0x00 }, - [IRC_CTCP_COLORS_MAGENTA] = { 0x9C, 0x00, 0x9C }, - [IRC_CTCP_COLORS_ORANGE] = { 0xFC, 0x7F, 0x00 }, - [IRC_CTCP_COLORS_YELLOW] = { 0xFF, 0xFF, 0x00 }, - [IRC_CTCP_COLORS_LIGHT_GREEN] = { 0x00, 0xFC, 0x00 }, - [IRC_CTCP_COLORS_CYAN] = { 0x00, 0x93, 0x93 }, - [IRC_CTCP_COLORS_LIGHT_CYAN] = { 0x00, 0xFF, 0xFF }, - [IRC_CTCP_COLORS_LIGHT_BLUE] = { 0x00, 0x00, 0xFC }, - [IRC_CTCP_COLORS_PINK] = { 0xFF, 0x00, 0xFF }, - [IRC_CTCP_COLORS_GREY] = { 0x7F, 0x7F, 0x7F }, - [IRC_CTCP_COLORS_LIGHT_GREY] = { 0xD2, 0xD2, 0xD2 }, - [IRC_CTCP_COLORS_DEFAULT] = { 0xFF, 0xFF, 0xFF }, - [16] = { 0x47, 0x00, 0x00 }, /* See https://modern.ircdocs.horse/formatting.html */ - [17] = { 0x47, 0x21, 0x00 }, - [18] = { 0x47, 0x47, 0x00 }, - [19] = { 0x32, 0x47, 0x00 }, - [20] = { 0x00, 0x47, 0x00 }, - [21] = { 0x00, 0x47, 0x2c }, - [22] = { 0x00, 0x47, 0x47 }, - [23] = { 0x00, 0x27, 0x47 }, - [24] = { 0x00, 0x00, 0x47 }, - [25] = { 0x2e, 0x00, 0x47 }, - [26] = { 0x47, 0x00, 0x47 }, - [27] = { 0x47, 0x00, 0x2a }, - [28] = { 0x74, 0x00, 0x00 }, - [29] = { 0x74, 0x3a, 0x00 }, - [30] = { 0x74, 0x74, 0x00 }, - [31] = { 0x51, 0x74, 0x00 }, - [32] = { 0x00, 0x74, 0x00 }, - [33] = { 0x00, 0x74, 0x49 }, - [34] = { 0x00, 0x74, 0x74 }, - [35] = { 0x00, 0x40, 0x74 }, - [36] = { 0x00, 0x00, 0x74 }, - [37] = { 0x4b, 0x00, 0x74 }, - [38] = { 0x74, 0x00, 0x74 }, - [39] = { 0x74, 0x00, 0x45 }, - [40] = { 0xb5, 0x00, 0x00 }, - [41] = { 0xb5, 0x63, 0x00 }, - [42] = { 0xb5, 0xb5, 0x00 }, - [43] = { 0x7d, 0xb5, 0x00 }, - [44] = { 0x00, 0xb5, 0x00 }, - [45] = { 0x00, 0xb5, 0x71 }, - [46] = { 0x00, 0xb5, 0xb5 }, - [47] = { 0x00, 0x63, 0xb5 }, - [48] = { 0x00, 0x00, 0xb5 }, - [49] = { 0x75, 0x00, 0xb5 }, - [50] = { 0xb5, 0x00, 0xb5 }, - [51] = { 0xb5, 0x00, 0x6b }, - [52] = { 0xff, 0x00, 0x00 }, - [53] = { 0xff, 0x8c, 0x00 }, - [54] = { 0xff, 0xff, 0x00 }, - [55] = { 0xb2, 0xff, 0x00 }, - [56] = { 0x00, 0xff, 0x00 }, - [57] = { 0x00, 0xff, 0xa0 }, - [58] = { 0x00, 0xff, 0xff }, - [59] = { 0x00, 0x8c, 0xff }, - [60] = { 0x00, 0x00, 0xff }, - [61] = { 0xa5, 0x00, 0xff }, - [62] = { 0xff, 0x00, 0xff }, - [63] = { 0xff, 0x00, 0x98 }, - [64] = { 0xff, 0x59, 0x59 }, - [65] = { 0xff, 0xb4, 0x59 }, - [66] = { 0xff, 0xff, 0x71 }, - [67] = { 0xcf, 0xff, 0x60 }, - [68] = { 0x6f, 0xff, 0x6f }, - [69] = { 0x65, 0xff, 0xc9 }, - [70] = { 0x6d, 0xff, 0xff }, - [71] = { 0x59, 0xb4, 0xff }, - [72] = { 0x59, 0x59, 0xff }, - [73] = { 0xc4, 0x59, 0xff }, - [74] = { 0xff, 0x66, 0xff }, - [75] = { 0xff, 0x59, 0xbc }, - [76] = { 0xff, 0x9c, 0x9c }, - [77] = { 0xff, 0xd3, 0x9c }, - [78] = { 0xff, 0xff, 0x9c }, - [79] = { 0xe2, 0xff, 0x9c }, - [80] = { 0x9c, 0xff, 0x9c }, - [81] = { 0x9c, 0xff, 0xdb }, - [82] = { 0x9c, 0xff, 0xff }, - [83] = { 0x9c, 0xd3, 0xff }, - [84] = { 0x9c, 0x9c, 0xff }, - [85] = { 0xdc, 0x9c, 0xff }, - [86] = { 0xff, 0x9c, 0xff }, - [87] = { 0xff, 0x94, 0xd3 }, - [88] = { 0x00, 0x00, 0x00 }, - [89] = { 0x13, 0x13, 0x13 }, - [90] = { 0x28, 0x28, 0x28 }, - [91] = { 0x36, 0x36, 0x36 }, - [92] = { 0x4d, 0x4d, 0x4d }, - [93] = { 0x65, 0x65, 0x65 }, - [94] = { 0x81, 0x81, 0x81 }, - [95] = { 0x9f, 0x9f, 0x9f }, - [96] = { 0xbc, 0xbc, 0xbc }, - [97] = { 0xe2, 0xe2, 0xe2 }, - [98] = { 0xff, 0xff, 0xff }, + [0] = { 0xFF, 0xFF, 0xFF }, [1] = { 0x00, 0x00, 0x00 }, [2] = { 0x00, 0x00, 0x7F }, [3] = { 0x00, 0x93, 0x00 }, + [4] = { 0xFF, 0x00, 0x00 }, [5] = { 0x7F, 0x00, 0x00 }, [6] = { 0x9C, 0x00, 0x9C }, [7] = { 0xFC, 0x7F, 0x00 }, + [8] = { 0xFF, 0xFF, 0x00 }, [9] = { 0x00, 0xFC, 0x00 }, [10] = { 0x00, 0x93, 0x93 }, [11] = { 0x00, 0xFF, 0xFF }, + [12] = { 0x00, 0x00, 0xFC }, [13] = { 0xFF, 0x00, 0xFF }, [14] = { 0x7F, 0x7F, 0x7F }, [15] = { 0xD2, 0xD2, 0xD2 }, + [16] = { 0x47, 0x00, 0x00 }, [17] = { 0x47, 0x21, 0x00 }, [18] = { 0x47, 0x47, 0x00 }, [19] = { 0x32, 0x47, 0x00 }, + [20] = { 0x00, 0x47, 0x00 }, [21] = { 0x00, 0x47, 0x2c }, [22] = { 0x00, 0x47, 0x47 }, [23] = { 0x00, 0x27, 0x47 }, + [24] = { 0x00, 0x00, 0x47 }, [25] = { 0x2e, 0x00, 0x47 }, [26] = { 0x47, 0x00, 0x47 }, [27] = { 0x47, 0x00, 0x2a }, + [28] = { 0x74, 0x00, 0x00 }, [29] = { 0x74, 0x3a, 0x00 }, [30] = { 0x74, 0x74, 0x00 }, [31] = { 0x51, 0x74, 0x00 }, + [32] = { 0x00, 0x74, 0x00 }, [33] = { 0x00, 0x74, 0x49 }, [34] = { 0x00, 0x74, 0x74 }, [35] = { 0x00, 0x40, 0x74 }, + [36] = { 0x00, 0x00, 0x74 }, [37] = { 0x4b, 0x00, 0x74 }, [38] = { 0x74, 0x00, 0x74 }, [39] = { 0x74, 0x00, 0x45 }, + [40] = { 0xb5, 0x00, 0x00 }, [41] = { 0xb5, 0x63, 0x00 }, [42] = { 0xb5, 0xb5, 0x00 }, [43] = { 0x7d, 0xb5, 0x00 }, + [44] = { 0x00, 0xb5, 0x00 }, [45] = { 0x00, 0xb5, 0x71 }, [46] = { 0x00, 0xb5, 0xb5 }, [47] = { 0x00, 0x63, 0xb5 }, + [48] = { 0x00, 0x00, 0xb5 }, [49] = { 0x75, 0x00, 0xb5 }, [50] = { 0xb5, 0x00, 0xb5 }, [51] = { 0xb5, 0x00, 0x6b }, + [52] = { 0xff, 0x00, 0x00 }, [53] = { 0xff, 0x8c, 0x00 }, [54] = { 0xff, 0xff, 0x00 }, [55] = { 0xb2, 0xff, 0x00 }, + [56] = { 0x00, 0xff, 0x00 }, [57] = { 0x00, 0xff, 0xa0 }, [58] = { 0x00, 0xff, 0xff }, [59] = { 0x00, 0x8c, 0xff }, + [60] = { 0x00, 0x00, 0xff }, [61] = { 0xa5, 0x00, 0xff }, [62] = { 0xff, 0x00, 0xff }, [63] = { 0xff, 0x00, 0x98 }, + [64] = { 0xff, 0x59, 0x59 }, [65] = { 0xff, 0xb4, 0x59 }, [66] = { 0xff, 0xff, 0x71 }, [67] = { 0xcf, 0xff, 0x60 }, + [68] = { 0x6f, 0xff, 0x6f }, [69] = { 0x65, 0xff, 0xc9 }, [70] = { 0x6d, 0xff, 0xff }, [71] = { 0x59, 0xb4, 0xff }, + [72] = { 0x59, 0x59, 0xff }, [73] = { 0xc4, 0x59, 0xff }, [74] = { 0xff, 0x66, 0xff }, [75] = { 0xff, 0x59, 0xbc }, + [76] = { 0xff, 0x9c, 0x9c }, [77] = { 0xff, 0xd3, 0x9c }, [78] = { 0xff, 0xff, 0x9c }, [79] = { 0xe2, 0xff, 0x9c }, + [80] = { 0x9c, 0xff, 0x9c }, [81] = { 0x9c, 0xff, 0xdb }, [82] = { 0x9c, 0xff, 0xff }, [83] = { 0x9c, 0xd3, 0xff }, + [84] = { 0x9c, 0x9c, 0xff }, [85] = { 0xdc, 0x9c, 0xff }, [86] = { 0xff, 0x9c, 0xff }, [87] = { 0xff, 0x94, 0xd3 }, + [88] = { 0x00, 0x00, 0x00 }, [89] = { 0x13, 0x13, 0x13 }, [90] = { 0x28, 0x28, 0x28 }, [91] = { 0x36, 0x36, 0x36 }, + [92] = { 0x4d, 0x4d, 0x4d }, [93] = { 0x65, 0x65, 0x65 }, [94] = { 0x81, 0x81, 0x81 }, [95] = { 0x9f, 0x9f, 0x9f }, + [96] = { 0xbc, 0xbc, 0xbc }, [97] = { 0xe2, 0xe2, 0xe2 }, [98] = { 0xff, 0xff, 0xff }, [99] = { 0xFF, 0xFF, 0xFF }, }; rgbcolor*