diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/charset.c | 356 | ||||
-rw-r--r-- | src/nvim/syntax.c | 850 | ||||
-rw-r--r-- | src/nvim/tag.c | 8 | ||||
-rw-r--r-- | src/nvim/testdir/test_alot.vim | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_tagjump.vim | 9 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
6 files changed, 800 insertions, 426 deletions
diff --git a/src/nvim/charset.c b/src/nvim/charset.c index c501b7e83f..4d150c3230 100644 --- a/src/nvim/charset.c +++ b/src/nvim/charset.c @@ -59,12 +59,8 @@ static char_u g_chartab[256]; /// Depends on the option settings 'iskeyword', 'isident', 'isfname', /// 'isprint' and 'encoding'. /// -/// The index in g_chartab[] depends on 'encoding': -/// - For non-multi-byte index with the byte (same as the character). -/// - For DBCS index with the first byte. -/// - For UTF-8 index with the character (when first byte is up to 0x80 it is -/// the same as the character, if the first byte is 0x80 and above it depends -/// on further bytes). +/// The index in g_chartab[] is the character when first byte is up to 0x80, +/// if the first byte is 0x80 and above it depends on further bytes. /// /// The contents of g_chartab[]: /// - The lower two bits, masked by CT_CELL_MASK, give the number of display @@ -118,15 +114,9 @@ int buf_init_chartab(buf_T *buf, int global) } while (c < 256) { - if (enc_utf8 && (c >= 0xa0)) { + if (c >= 0xa0) { // UTF-8: bytes 0xa0 - 0xff are printable (latin1) g_chartab[c++] = CT_PRINT_CHAR + 1; - } else if ((enc_dbcs == DBCS_JPNU) && (c == 0x8e)) { - // euc-jp characters starting with 0x8e are single width - g_chartab[c++] = CT_PRINT_CHAR + 1; - } else if ((enc_dbcs != 0) && (MB_BYTE2LEN(c) == 2)) { - // other double-byte chars can be printable AND double-width - g_chartab[c++] = CT_PRINT_CHAR + 2; } else { // the rest is unprintable by default g_chartab[c++] = (dy_flags & DY_UHEX) ? 4 : 2; @@ -134,10 +124,8 @@ int buf_init_chartab(buf_T *buf, int global) } // Assume that every multi-byte char is a filename character. - for (c = 1; c < 256; ++c) { - if (((enc_dbcs != 0) && (MB_BYTE2LEN(c) > 1)) - || ((enc_dbcs == DBCS_JPNU) && (c == 0x8e)) - || (enc_utf8 && (c >= 0xa0))) { + for (c = 1; c < 256; c++) { + if (c >= 0xa0) { g_chartab[c] |= CT_FNAME_CHAR; } } @@ -146,15 +134,6 @@ int buf_init_chartab(buf_T *buf, int global) // Init word char flags all to false memset(buf->b_chartab, 0, (size_t)32); - if (enc_dbcs != 0) { - for (c = 0; c < 256; ++c) { - // double-byte characters are probably word characters - if (MB_BYTE2LEN(c) == 2) { - SET_CHARTAB(buf, c); - } - } - } - // In lisp mode the '-' character is included in keywords. if (buf->b_p_lisp) { SET_CHARTAB(buf, '-'); @@ -189,10 +168,8 @@ int buf_init_chartab(buf_T *buf, int global) if (ascii_isdigit(*p)) { c = getdigits_int(&p); - } else if (has_mbyte) { - c = mb_ptr2char_adv(&p); } else { - c = *p++; + c = mb_ptr2char_adv(&p); } c2 = -1; @@ -201,10 +178,8 @@ int buf_init_chartab(buf_T *buf, int global) if (ascii_isdigit(*p)) { c2 = getdigits_int(&p); - } else if (has_mbyte) { - c2 = mb_ptr2char_adv(&p); } else { - c2 = *p++; + c2 = mb_ptr2char_adv(&p); } } @@ -251,8 +226,7 @@ int buf_init_chartab(buf_T *buf, int global) // that we can detect it from the first byte. if (((c < ' ') || (c > '~') - || (p_altkeymap && (F_isalpha(c) || F_isdigit(c)))) - && !(enc_dbcs && (MB_BYTE2LEN(c) == 2))) { + || (p_altkeymap && (F_isalpha(c) || F_isdigit(c))))) { if (tilde) { g_chartab[c] = (uint8_t)((g_chartab[c] & ~CT_CELL_MASK) + ((dy_flags & DY_UHEX) ? 4 : 2)); @@ -313,7 +287,7 @@ void trans_characters(char_u *buf, int bufsize) while (*buf != 0) { // Assume a multi-byte character doesn't need translation. - if (has_mbyte && ((trs_len = (*mb_ptr2len)(buf)) > 1)) { + if ((trs_len = (*mb_ptr2len)(buf)) > 1) { len -= trs_len; } else { trs = transchar_byte(*buf); @@ -347,44 +321,40 @@ char_u *transstr(char_u *s) FUNC_ATTR_NONNULL_RET size_t l; char_u hexbuf[11]; - if (has_mbyte) { - // Compute the length of the result, taking account of unprintable - // multi-byte characters. - size_t len = 0; - p = s; + // Compute the length of the result, taking account of unprintable + // multi-byte characters. + size_t len = 0; + p = s; - while (*p != NUL) { - if ((l = (size_t)(*mb_ptr2len)(p)) > 1) { - c = (*mb_ptr2char)(p); - p += l; + while (*p != NUL) { + if ((l = (size_t)(*mb_ptr2len)(p)) > 1) { + c = (*mb_ptr2char)(p); + p += l; - if (vim_isprintc(c)) { - len += l; - } else { - transchar_hex(hexbuf, c); - len += STRLEN(hexbuf); - } + if (vim_isprintc(c)) { + len += l; } else { - l = (size_t)byte2cells(*p++); + transchar_hex(hexbuf, c); + len += STRLEN(hexbuf); + } + } else { + l = (size_t)byte2cells(*p++); - if (l > 0) { - len += l; - } else { - // illegal byte sequence - len += 4; - } + if (l > 0) { + len += l; + } else { + // illegal byte sequence + len += 4; } } - res = xmallocz(len); - } else { - res = xmallocz((size_t)vim_strsize(s)); } + res = xmallocz(len); *res = NUL; p = s; while (*p != NUL) { - if (has_mbyte && ((l = (size_t)(*mb_ptr2len)(p)) > 1)) { + if ((l = (size_t)(*mb_ptr2len)(p)) > 1) { c = (*mb_ptr2char)(p); if (vim_isprintc(c)) { @@ -443,59 +413,49 @@ char_u* str_foldcase(char_u *str, int orglen, char_u *buf, int buflen) // Make each character lower case. i = 0; while (STR_CHAR(i) != NUL) { - if (enc_utf8 || (has_mbyte && (MB_BYTE2LEN(STR_CHAR(i)) > 1))) { - if (enc_utf8) { - int c = utf_ptr2char(STR_PTR(i)); - int olen = utf_ptr2len(STR_PTR(i)); - int lc = utf_tolower(c); - - // Only replace the character when it is not an invalid - // sequence (ASCII character or more than one byte) and - // utf_tolower() doesn't return the original character. - if (((c < 0x80) || (olen > 1)) && (c != lc)) { - int nlen = utf_char2len(lc); - - // If the byte length changes need to shift the following - // characters forward or backward. - if (olen != nlen) { - if (nlen > olen) { - if (buf == NULL) { - ga_grow(&ga, nlen - olen + 1); - } else { - if (len + nlen - olen >= buflen) { - // out of memory, keep old char - lc = c; - nlen = olen; - } - } - } - - if (olen != nlen) { - if (buf == NULL) { - STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen); - ga.ga_len += nlen - olen; - } else { - STRMOVE(buf + i + nlen, buf + i + olen); - len += nlen - olen; - } + int c = utf_ptr2char(STR_PTR(i)); + int olen = utf_ptr2len(STR_PTR(i)); + int lc = utf_tolower(c); + + // Only replace the character when it is not an invalid + // sequence (ASCII character or more than one byte) and + // utf_tolower() doesn't return the original character. + if (((c < 0x80) || (olen > 1)) && (c != lc)) { + int nlen = utf_char2len(lc); + + // If the byte length changes need to shift the following + // characters forward or backward. + if (olen != nlen) { + if (nlen > olen) { + if (buf == NULL) { + ga_grow(&ga, nlen - olen + 1); + } else { + if (len + nlen - olen >= buflen) { + // out of memory, keep old char + lc = c; + nlen = olen; } } - (void)utf_char2bytes(lc, STR_PTR(i)); } - } - // skip to next multi-byte char - i += (*mb_ptr2len)(STR_PTR(i)); - } else { - if (buf == NULL) { - GA_CHAR(i) = (char_u)TOLOWER_LOC(GA_CHAR(i)); - } else { - buf[i] = (char_u)TOLOWER_LOC(buf[i]); + if (olen != nlen) { + if (buf == NULL) { + STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen); + ga.ga_len += nlen - olen; + } else { + STRMOVE(buf + i + nlen, buf + i + olen); + len += nlen - olen; + } + } } - ++i; + (void)utf_char2bytes(lc, STR_PTR(i)); } + + // skip to next multi-byte char + i += (*mb_ptr2len)(STR_PTR(i)); } + if (buf == NULL) { return (char_u *)ga.ga_data; } @@ -545,7 +505,7 @@ char_u* transchar(int c) /// @return pointer to translated character in transchar_buf. char_u* transchar_byte(int c) { - if (enc_utf8 && (c >= 0x80)) { + if (c >= 0x80) { transchar_nonprint(transchar_buf, c); return transchar_buf; } @@ -578,7 +538,7 @@ void transchar_nonprint(char_u *buf, int c) buf[1] = (char_u)(c ^ 0x40); buf[2] = NUL; - } else if (enc_utf8 && (c >= 0x80)) { + } else if (c >= 0x80) { transchar_hex(buf, c); } else if ((c >= ' ' + 0x80) && (c <= '~' + 0x80)) { // 0xa0 - 0xfe @@ -632,15 +592,15 @@ static unsigned nr2hex(unsigned c) /// Caller must make sure 0 <= b <= 255. /// For multi-byte mode "b" must be the first byte of a character. /// A TAB is counted as two cells: "^I". -/// For UTF-8 mode this will return 0 for bytes >= 0x80, because the number of -/// cells depends on further bytes. +/// This will return 0 for bytes >= 0x80, because the number of +/// cells depends on further bytes in UTF-8. /// /// @param b /// /// @reeturn Number of display cells. int byte2cells(int b) { - if (enc_utf8 && (b >= 0x80)) { + if (b >= 0x80) { return 0; } return g_chartab[b] & CT_CELL_MASK; @@ -662,18 +622,7 @@ int char2cells(int c) if (c >= 0x80) { // UTF-8: above 0x80 need to check the value - if (enc_utf8) { - return utf_char2cells(c); - } - - // DBCS: double-byte means double-width, except for euc-jp with first - // byte 0x8e - if ((enc_dbcs != 0) && (c >= 0x100)) { - if ((enc_dbcs == DBCS_JPNU) && (((unsigned)c >> 8) == 0x8e)) { - return 1; - } - return 2; - } + return utf_char2cells(c); } return g_chartab[c & 0xff] & CT_CELL_MASK; } @@ -687,7 +636,7 @@ int char2cells(int c) int ptr2cells(char_u *p) { // For UTF-8 we need to look at more bytes if the first byte is >= 0x80. - if (enc_utf8 && (*p >= 0x80)) { + if (*p >= 0x80) { return utf_ptr2cells(p); } @@ -722,14 +671,10 @@ int vim_strnsize(char_u *s, int len) assert(s != NULL); int size = 0; while (*s != NUL && --len >= 0) { - if (has_mbyte) { - int l = (*mb_ptr2len)(s); - size += ptr2cells(s); - s += l; - len -= l - 1; - } else { - size += byte2cells(*s++); - } + int l = (*mb_ptr2len)(s); + size += ptr2cells(s); + s += l; + len -= l - 1; } return size; } @@ -840,13 +785,7 @@ bool vim_iswordc_buf(int c, buf_T *buf) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ARG(2) { if (c >= 0x100) { - if (enc_dbcs != 0) { - return dbcs_class((unsigned)c >> 8, (unsigned)(c & 0xff)) >= 2; - } - - if (enc_utf8) { - return utf_class(c) >= 2; - } + return utf_class(c) >= 2; } return c > 0 && c < 0x100 && GET_CHARTAB(buf, c) != 0; } @@ -859,7 +798,7 @@ bool vim_iswordc_buf(int c, buf_T *buf) bool vim_iswordp(char_u *p) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL { - if (has_mbyte && (MB_BYTE2LEN(*p) > 1)) { + if (MB_BYTE2LEN(*p) > 1) { return mb_get_class(p) >= 2; } return GET_CHARTAB(curbuf, *p) != 0; @@ -875,7 +814,7 @@ bool vim_iswordp(char_u *p) bool vim_iswordp_buf(char_u *p, buf_T *buf) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL { - if (has_mbyte && (MB_BYTE2LEN(*p) > 1)) { + if (MB_BYTE2LEN(*p) > 1) { return mb_get_class(p) >= 2; } return GET_CHARTAB(buf, *p) != 0; @@ -913,7 +852,7 @@ bool vim_isfilec_or_wc(int c) bool vim_isprintc(int c) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { - if (enc_utf8 && (c >= 0x100)) { + if (c >= 0x100) { return utf_printable(c); } return c >= 0x100 || (c > 0 && (g_chartab[c] & CT_PRINT_CHAR)); @@ -928,14 +867,10 @@ bool vim_isprintc(int c) bool vim_isprintc_strict(int c) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { - if ((enc_dbcs != 0) && (c < 0x100) && (MB_BYTE2LEN(c) > 1)) { - return false; - } - - if (enc_utf8 && (c >= 0x100)) { + if (c >= 0x100) { return utf_printable(c); } - return c >= 0x100 || (c > 0 && (g_chartab[c] & CT_PRINT_CHAR)); + return c > 0 && (g_chartab[c] & CT_PRINT_CHAR); } /// like chartabsize(), but also check for line breaks on the screen @@ -1052,8 +987,7 @@ int win_lbr_chartabsize(win_T *wp, char_u *line, char_u *s, colnr_T col, int *he break; } } - } else if (has_mbyte - && (size == 2) + } else if ((size == 2) && (MB_BYTE2LEN(*s) > 1) && wp->w_p_wrap && in_win_border(wp, col)) { @@ -1251,28 +1185,24 @@ void getvcol(win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, if (c == TAB) { incr = ts - (vcol % ts); } else { - if (has_mbyte) { - // For utf-8, if the byte is >= 0x80, need to look at - // further bytes to find the cell width. - if (enc_utf8 && (c >= 0x80)) { - incr = utf_ptr2cells(ptr); - } else { - incr = g_chartab[c] & CT_CELL_MASK; - } - - // If a double-cell char doesn't fit at the end of a line - // it wraps to the next line, it's like this char is three - // cells wide. - if ((incr == 2) - && wp->w_p_wrap - && (MB_BYTE2LEN(*ptr) > 1) - && in_win_border(wp, vcol)) { - ++incr; - head = 1; - } + // For utf-8, if the byte is >= 0x80, need to look at + // further bytes to find the cell width. + if (c >= 0x80) { + incr = utf_ptr2cells(ptr); } else { incr = g_chartab[c] & CT_CELL_MASK; } + + // If a double-cell char doesn't fit at the end of a line + // it wraps to the next line, it's like this char is three + // cells wide. + if ((incr == 2) + && wp->w_p_wrap + && (MB_BYTE2LEN(*ptr) > 1) + && in_win_border(wp, vcol)) { + incr++; + head = 1; + } } if ((posptr != NULL) && (ptr >= posptr)) { @@ -1557,36 +1487,6 @@ char_u* skiptohex(char_u *q) // islower()/toupper() etc. do not work properly: they crash when used with // invalid values or can't handle latin1 when the locale is C. // Speed is most important here. -#define LATIN1LOWER 'l' -#define LATIN1UPPER 'U' - -static char_u latin1flags[257] = - " " - " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll " - " " - "UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll"; -static char_u latin1upper[257] = - " !\"#$%&'()*+,-./0123456789:;<=>" - "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~" - "\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e" - "\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e" - "\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae" - "\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe" - "\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce" - "\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde" - "\xdf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce" - "\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xf7\xd8\xd9\xda\xdb\xdc\xdd\xde\xff"; -static char_u latin1lower[257] = - " !\"#$%&'()*+,-./0123456789:;<=>" - "?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" - "\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e" - "\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e" - "\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae" - "\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe" - "\xbf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee" - "\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xd7\xf8\xf9\xfa\xfb\xfc\xfd\xfe" - "\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee" - "\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"; /// Check that the character is lower-case /// @@ -1599,20 +1499,7 @@ bool vim_islower(int c) } if (c >= 0x80) { - if (enc_utf8) { - return utf_islower(c); - } - - if (c >= 0x100) { - if (has_mbyte) { - return iswlower((wint_t)c); - } - - // islower() can't handle these chars and may crash - return false; - } - - return (latin1flags[c] & LATIN1LOWER) == LATIN1LOWER; + return utf_islower(c); } return islower(c); } @@ -1628,20 +1515,7 @@ bool vim_isupper(int c) } if (c >= 0x80) { - if (enc_utf8) { return utf_isupper(c); - } - - if (c >= 0x100) { - if (has_mbyte) { - return iswupper((wint_t)c); - } - - // isupper() can't handle these chars and may crash - return false; - } - - return (latin1flags[c] & LATIN1UPPER) == LATIN1UPPER; } return isupper(c); } @@ -1653,20 +1527,7 @@ int vim_toupper(int c) } if (c >= 0x80) { - if (enc_utf8) { - return utf_toupper(c); - } - - if (c >= 0x100) { - if (has_mbyte) { - return (int)towupper((wint_t)c); - } - - // toupper() can't handle these chars and may crash - return c; - } - - return latin1upper[c]; + return utf_toupper(c); } return TOUPPER_LOC(c); } @@ -1678,20 +1539,7 @@ int vim_tolower(int c) } if (c >= 0x80) { - if (enc_utf8) { - return utf_tolower(c); - } - - if (c >= 0x100) { - if (has_mbyte) { - return (int)towlower((wint_t)c); - } - - // tolower() can't handle these chars and may crash - return c; - } - - return latin1lower[c]; + return utf_tolower(c); } return TOLOWER_LOC(c); } diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index cd37bde3cb..aded08faee 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -7547,175 +7547,687 @@ char_u *get_highlight_name(expand_T *xp, int idx) } color_name_table_T color_name_table[] = { - // Color names taken from - // http://www.rapidtables.com/web/color/RGB_Color.htm - {"Maroon", RGB(0x80, 0x00, 0x00)}, - {"DarkRed", RGB(0x8b, 0x00, 0x00)}, - {"Brown", RGB(0xa5, 0x2a, 0x2a)}, - {"Firebrick", RGB(0xb2, 0x22, 0x22)}, - {"Crimson", RGB(0xdc, 0x14, 0x3c)}, - {"Red", RGB(0xff, 0x00, 0x00)}, - {"Tomato", RGB(0xff, 0x63, 0x47)}, - {"Coral", RGB(0xff, 0x7f, 0x50)}, - {"IndianRed", RGB(0xcd, 0x5c, 0x5c)}, - {"LightCoral", RGB(0xf0, 0x80, 0x80)}, - {"DarkSalmon", RGB(0xe9, 0x96, 0x7a)}, - {"Salmon", RGB(0xfa, 0x80, 0x72)}, - {"LightSalmon", RGB(0xff, 0xa0, 0x7a)}, - {"OrangeRed", RGB(0xff, 0x45, 0x00)}, - {"DarkOrange", RGB(0xff, 0x8c, 0x00)}, - {"Orange", RGB(0xff, 0xa5, 0x00)}, - {"Gold", RGB(0xff, 0xd7, 0x00)}, - {"DarkGoldenRod", RGB(0xb8, 0x86, 0x0b)}, - {"GoldenRod", RGB(0xda, 0xa5, 0x20)}, - {"PaleGoldenRod", RGB(0xee, 0xe8, 0xaa)}, - {"DarkKhaki", RGB(0xbd, 0xb7, 0x6b)}, - {"Khaki", RGB(0xf0, 0xe6, 0x8c)}, - {"Olive", RGB(0x80, 0x80, 0x00)}, - {"Yellow", RGB(0xff, 0xff, 0x00)}, - {"YellowGreen", RGB(0x9a, 0xcd, 0x32)}, - {"DarkOliveGreen", RGB(0x55, 0x6b, 0x2f)}, - {"OliveDrab", RGB(0x6b, 0x8e, 0x23)}, - {"LawnGreen", RGB(0x7c, 0xfc, 0x00)}, - {"ChartReuse", RGB(0x7f, 0xff, 0x00)}, - {"GreenYellow", RGB(0xad, 0xff, 0x2f)}, - {"DarkGreen", RGB(0x00, 0x64, 0x00)}, - {"Green", RGB(0x00, 0x80, 0x00)}, - {"ForestGreen", RGB(0x22, 0x8b, 0x22)}, - {"Lime", RGB(0x00, 0xff, 0x00)}, - {"LimeGreen", RGB(0x32, 0xcd, 0x32)}, - {"LightGreen", RGB(0x90, 0xee, 0x90)}, - {"PaleGreen", RGB(0x98, 0xfb, 0x98)}, - {"DarkSeaGreen", RGB(0x8f, 0xbc, 0x8f)}, - {"MediumSpringGreen", RGB(0x00, 0xfa, 0x9a)}, - {"SpringGreen", RGB(0x00, 0xff, 0x7f)}, - {"SeaGreen", RGB(0x2e, 0x8b, 0x57)}, - {"MediumAquamarine", RGB(0x66, 0xcd, 0xaa)}, - {"MediumSeaGreen", RGB(0x3c, 0xb3, 0x71)}, - {"LightSeaGreen", RGB(0x20, 0xb2, 0xaa)}, - {"DarkSlateGray", RGB(0x2f, 0x4f, 0x4f)}, - {"Teal", RGB(0x00, 0x80, 0x80)}, - {"DarkCyan", RGB(0x00, 0x8b, 0x8b)}, - {"Aqua", RGB(0x00, 0xff, 0xff)}, - {"Cyan", RGB(0x00, 0xff, 0xff)}, - {"LightCyan", RGB(0xe0, 0xff, 0xff)}, - {"DarkTurquoise", RGB(0x00, 0xce, 0xd1)}, - {"Turquoise", RGB(0x40, 0xe0, 0xd0)}, - {"MediumTurquoise", RGB(0x48, 0xd1, 0xcc)}, - {"PaleTurquoise", RGB(0xaf, 0xee, 0xee)}, - {"Aquamarine", RGB(0x7f, 0xff, 0xd4)}, - {"PowderBlue", RGB(0xb0, 0xe0, 0xe6)}, - {"CadetBlue", RGB(0x5f, 0x9e, 0xa0)}, - {"SteelBlue", RGB(0x46, 0x82, 0xb4)}, - {"CornFlowerBlue", RGB(0x64, 0x95, 0xed)}, - {"DeepSkyBlue", RGB(0x00, 0xbf, 0xff)}, - {"DodgerBlue", RGB(0x1e, 0x90, 0xff)}, - {"LightBlue", RGB(0xad, 0xd8, 0xe6)}, - {"SkyBlue", RGB(0x87, 0xce, 0xeb)}, - {"LightSkyBlue", RGB(0x87, 0xce, 0xfa)}, - {"MidnightBlue", RGB(0x19, 0x19, 0x70)}, - {"Navy", RGB(0x00, 0x00, 0x80)}, - {"DarkBlue", RGB(0x00, 0x00, 0x8b)}, - {"MediumBlue", RGB(0x00, 0x00, 0xcd)}, - {"Blue", RGB(0x00, 0x00, 0xff)}, - {"RoyalBlue", RGB(0x41, 0x69, 0xe1)}, - {"BlueViolet", RGB(0x8a, 0x2b, 0xe2)}, - {"Indigo", RGB(0x4b, 0x00, 0x82)}, - {"DarkSlateBlue", RGB(0x48, 0x3d, 0x8b)}, - {"SlateBlue", RGB(0x6a, 0x5a, 0xcd)}, - {"MediumSlateBlue", RGB(0x7b, 0x68, 0xee)}, - {"MediumPurple", RGB(0x93, 0x70, 0xdb)}, - {"DarkMagenta", RGB(0x8b, 0x00, 0x8b)}, - {"DarkViolet", RGB(0x94, 0x00, 0xd3)}, - {"DarkOrchid", RGB(0x99, 0x32, 0xcc)}, - {"MediumOrchid", RGB(0xba, 0x55, 0xd3)}, - {"Purple", RGB(0x80, 0x00, 0x80)}, - {"Thistle", RGB(0xd8, 0xbf, 0xd8)}, - {"Plum", RGB(0xdd, 0xa0, 0xdd)}, - {"Violet", RGB(0xee, 0x82, 0xee)}, - {"Magenta", RGB(0xff, 0x00, 0xff)}, - {"Fuchsia", RGB(0xff, 0x00, 0xff)}, - {"Orchid", RGB(0xda, 0x70, 0xd6)}, - {"MediumVioletRed", RGB(0xc7, 0x15, 0x85)}, - {"PaleVioletRed", RGB(0xdb, 0x70, 0x93)}, - {"DeepPink", RGB(0xff, 0x14, 0x93)}, - {"HotPink", RGB(0xff, 0x69, 0xb4)}, - {"LightPink", RGB(0xff, 0xb6, 0xc1)}, - {"Pink", RGB(0xff, 0xc0, 0xcb)}, - {"AntiqueWhite", RGB(0xfa, 0xeb, 0xd7)}, - {"Beige", RGB(0xf5, 0xf5, 0xdc)}, - {"Bisque", RGB(0xff, 0xe4, 0xc4)}, - {"BlanchedAlmond", RGB(0xff, 0xeb, 0xcd)}, - {"Wheat", RGB(0xf5, 0xde, 0xb3)}, - {"Cornsilk", RGB(0xff, 0xf8, 0xdc)}, - {"LemonChiffon", RGB(0xff, 0xfa, 0xcd)}, - {"LightGoldenRodYellow", RGB(0xfa, 0xfa, 0xd2)}, - {"LightYellow", RGB(0xff, 0xff, 0xe0)}, - {"SaddleBrown", RGB(0x8b, 0x45, 0x13)}, - {"Sienna", RGB(0xa0, 0x52, 0x2d)}, - {"Chocolate", RGB(0xd2, 0x69, 0x1e)}, - {"Peru", RGB(0xcd, 0x85, 0x3f)}, - {"SandyBrown", RGB(0xf4, 0xa4, 0x60)}, - {"BurlyWood", RGB(0xde, 0xb8, 0x87)}, - {"Tan", RGB(0xd2, 0xb4, 0x8c)}, - {"RosyBrown", RGB(0xbc, 0x8f, 0x8f)}, - {"Moccasin", RGB(0xff, 0xe4, 0xb5)}, - {"NavajoWhite", RGB(0xff, 0xde, 0xad)}, - {"PeachPuff", RGB(0xff, 0xda, 0xb9)}, - {"MistyRose", RGB(0xff, 0xe4, 0xe1)}, - {"LavenderBlush", RGB(0xff, 0xf0, 0xf5)}, - {"Linen", RGB(0xfa, 0xf0, 0xe6)}, - {"Oldlace", RGB(0xfd, 0xf5, 0xe6)}, - {"PapayaWhip", RGB(0xff, 0xef, 0xd5)}, - {"SeaShell", RGB(0xff, 0xf5, 0xee)}, - {"MintCream", RGB(0xf5, 0xff, 0xfa)}, - {"SlateGray", RGB(0x70, 0x80, 0x90)}, - {"LightSlateGray", RGB(0x77, 0x88, 0x99)}, - {"LightSteelBlue", RGB(0xb0, 0xc4, 0xde)}, - {"Lavender", RGB(0xe6, 0xe6, 0xfa)}, - {"FloralWhite", RGB(0xff, 0xfa, 0xf0)}, - {"AliceBlue", RGB(0xf0, 0xf8, 0xff)}, - {"GhostWhite", RGB(0xf8, 0xf8, 0xff)}, - {"Honeydew", RGB(0xf0, 0xff, 0xf0)}, - {"Ivory", RGB(0xff, 0xff, 0xf0)}, - {"Azure", RGB(0xf0, 0xff, 0xff)}, - {"Snow", RGB(0xff, 0xfa, 0xfa)}, - {"Black", RGB(0x00, 0x00, 0x00)}, - {"DimGray", RGB(0x69, 0x69, 0x69)}, - {"DimGrey", RGB(0x69, 0x69, 0x69)}, - {"Gray", RGB(0x80, 0x80, 0x80)}, - {"Grey", RGB(0x80, 0x80, 0x80)}, - {"DarkGray", RGB(0xa9, 0xa9, 0xa9)}, - {"DarkGrey", RGB(0xa9, 0xa9, 0xa9)}, - {"Silver", RGB(0xc0, 0xc0, 0xc0)}, - {"LightGray", RGB(0xd3, 0xd3, 0xd3)}, - {"LightGrey", RGB(0xd3, 0xd3, 0xd3)}, - {"Gainsboro", RGB(0xdc, 0xdc, 0xdc)}, - {"WhiteSmoke", RGB(0xf5, 0xf5, 0xf5)}, - {"White", RGB(0xff, 0xff, 0xff)}, - // The color names below were taken from gui_x11.c in vim source - {"LightRed", RGB(0xff, 0xbb, 0xbb)}, - {"LightMagenta",RGB(0xff, 0xbb, 0xff)}, - {"DarkYellow", RGB(0xbb, 0xbb, 0x00)}, - {"Gray10", RGB(0x1a, 0x1a, 0x1a)}, - {"Grey10", RGB(0x1a, 0x1a, 0x1a)}, - {"Gray20", RGB(0x33, 0x33, 0x33)}, - {"Grey20", RGB(0x33, 0x33, 0x33)}, - {"Gray30", RGB(0x4d, 0x4d, 0x4d)}, - {"Grey30", RGB(0x4d, 0x4d, 0x4d)}, - {"Gray40", RGB(0x66, 0x66, 0x66)}, - {"Grey40", RGB(0x66, 0x66, 0x66)}, - {"Gray50", RGB(0x7f, 0x7f, 0x7f)}, - {"Grey50", RGB(0x7f, 0x7f, 0x7f)}, - {"Gray60", RGB(0x99, 0x99, 0x99)}, - {"Grey60", RGB(0x99, 0x99, 0x99)}, - {"Gray70", RGB(0xb3, 0xb3, 0xb3)}, - {"Grey70", RGB(0xb3, 0xb3, 0xb3)}, - {"Gray80", RGB(0xcc, 0xcc, 0xcc)}, - {"Grey80", RGB(0xcc, 0xcc, 0xcc)}, - {"Gray90", RGB(0xe5, 0xe5, 0xe5)}, - {"Grey90", RGB(0xe5, 0xe5, 0xe5)}, - {NULL, 0}, + // Colors from rgb.txt + { "AliceBlue", RGB(0xf0, 0xf8, 0xff) }, + { "AntiqueWhite", RGB(0xfa, 0xeb, 0xd7) }, + { "AntiqueWhite1", RGB(0xff, 0xef, 0xdb) }, + { "AntiqueWhite2", RGB(0xee, 0xdf, 0xcc) }, + { "AntiqueWhite3", RGB(0xcd, 0xc0, 0xb0) }, + { "AntiqueWhite4", RGB(0x8b, 0x83, 0x78) }, + { "Aqua", RGB(0x00, 0xff, 0xff) }, + { "Aquamarine", RGB(0x7f, 0xff, 0xd4) }, + { "Aquamarine1", RGB(0x7f, 0xff, 0xd4) }, + { "Aquamarine2", RGB(0x76, 0xee, 0xc6) }, + { "Aquamarine3", RGB(0x66, 0xcd, 0xaa) }, + { "Aquamarine4", RGB(0x45, 0x8b, 0x74) }, + { "Azure", RGB(0xf0, 0xff, 0xff) }, + { "Azure1", RGB(0xf0, 0xff, 0xff) }, + { "Azure2", RGB(0xe0, 0xee, 0xee) }, + { "Azure3", RGB(0xc1, 0xcd, 0xcd) }, + { "Azure4", RGB(0x83, 0x8b, 0x8b) }, + { "Beige", RGB(0xf5, 0xf5, 0xdc) }, + { "Bisque", RGB(0xff, 0xe4, 0xc4) }, + { "Bisque1", RGB(0xff, 0xe4, 0xc4) }, + { "Bisque2", RGB(0xee, 0xd5, 0xb7) }, + { "Bisque3", RGB(0xcd, 0xb7, 0x9e) }, + { "Bisque4", RGB(0x8b, 0x7d, 0x6b) }, + { "Black", RGB(0x00, 0x00, 0x00) }, + { "BlanchedAlmond", RGB(0xff, 0xeb, 0xcd) }, + { "Blue", RGB(0x00, 0x00, 0xff) }, + { "Blue1", RGB(0x0, 0x0, 0xff) }, + { "Blue2", RGB(0x0, 0x0, 0xee) }, + { "Blue3", RGB(0x0, 0x0, 0xcd) }, + { "Blue4", RGB(0x0, 0x0, 0x8b) }, + { "BlueViolet", RGB(0x8a, 0x2b, 0xe2) }, + { "Brown", RGB(0xa5, 0x2a, 0x2a) }, + { "Brown1", RGB(0xff, 0x40, 0x40) }, + { "Brown2", RGB(0xee, 0x3b, 0x3b) }, + { "Brown3", RGB(0xcd, 0x33, 0x33) }, + { "Brown4", RGB(0x8b, 0x23, 0x23) }, + { "BurlyWood", RGB(0xde, 0xb8, 0x87) }, + { "Burlywood1", RGB(0xff, 0xd3, 0x9b) }, + { "Burlywood2", RGB(0xee, 0xc5, 0x91) }, + { "Burlywood3", RGB(0xcd, 0xaa, 0x7d) }, + { "Burlywood4", RGB(0x8b, 0x73, 0x55) }, + { "CadetBlue", RGB(0x5f, 0x9e, 0xa0) }, + { "CadetBlue1", RGB(0x98, 0xf5, 0xff) }, + { "CadetBlue2", RGB(0x8e, 0xe5, 0xee) }, + { "CadetBlue3", RGB(0x7a, 0xc5, 0xcd) }, + { "CadetBlue4", RGB(0x53, 0x86, 0x8b) }, + { "ChartReuse", RGB(0x7f, 0xff, 0x00) }, + { "Chartreuse1", RGB(0x7f, 0xff, 0x0) }, + { "Chartreuse2", RGB(0x76, 0xee, 0x0) }, + { "Chartreuse3", RGB(0x66, 0xcd, 0x0) }, + { "Chartreuse4", RGB(0x45, 0x8b, 0x0) }, + { "Chocolate", RGB(0xd2, 0x69, 0x1e) }, + { "Chocolate1", RGB(0xff, 0x7f, 0x24) }, + { "Chocolate2", RGB(0xee, 0x76, 0x21) }, + { "Chocolate3", RGB(0xcd, 0x66, 0x1d) }, + { "Chocolate4", RGB(0x8b, 0x45, 0x13) }, + { "Coral", RGB(0xff, 0x7f, 0x50) }, + { "Coral1", RGB(0xff, 0x72, 0x56) }, + { "Coral2", RGB(0xee, 0x6a, 0x50) }, + { "Coral3", RGB(0xcd, 0x5b, 0x45) }, + { "Coral4", RGB(0x8b, 0x3e, 0x2f) }, + { "CornFlowerBlue", RGB(0x64, 0x95, 0xed) }, + { "Cornsilk", RGB(0xff, 0xf8, 0xdc) }, + { "Cornsilk1", RGB(0xff, 0xf8, 0xdc) }, + { "Cornsilk2", RGB(0xee, 0xe8, 0xcd) }, + { "Cornsilk3", RGB(0xcd, 0xc8, 0xb1) }, + { "Cornsilk4", RGB(0x8b, 0x88, 0x78) }, + { "Crimson", RGB(0xdc, 0x14, 0x3c) }, + { "Cyan", RGB(0x00, 0xff, 0xff) }, + { "Cyan1", RGB(0x0, 0xff, 0xff) }, + { "Cyan2", RGB(0x0, 0xee, 0xee) }, + { "Cyan3", RGB(0x0, 0xcd, 0xcd) }, + { "Cyan4", RGB(0x0, 0x8b, 0x8b) }, + { "DarkBlue", RGB(0x00, 0x00, 0x8b) }, + { "DarkCyan", RGB(0x00, 0x8b, 0x8b) }, + { "DarkGoldenRod", RGB(0xb8, 0x86, 0x0b) }, + { "DarkGoldenrod1", RGB(0xff, 0xb9, 0xf) }, + { "DarkGoldenrod2", RGB(0xee, 0xad, 0xe) }, + { "DarkGoldenrod3", RGB(0xcd, 0x95, 0xc) }, + { "DarkGoldenrod4", RGB(0x8b, 0x65, 0x8) }, + { "DarkGray", RGB(0xa9, 0xa9, 0xa9) }, + { "DarkGreen", RGB(0x00, 0x64, 0x00) }, + { "DarkGrey", RGB(0xa9, 0xa9, 0xa9) }, + { "DarkKhaki", RGB(0xbd, 0xb7, 0x6b) }, + { "DarkMagenta", RGB(0x8b, 0x00, 0x8b) }, + { "DarkOliveGreen", RGB(0x55, 0x6b, 0x2f) }, + { "DarkOliveGreen1", RGB(0xca, 0xff, 0x70) }, + { "DarkOliveGreen2", RGB(0xbc, 0xee, 0x68) }, + { "DarkOliveGreen3", RGB(0xa2, 0xcd, 0x5a) }, + { "DarkOliveGreen4", RGB(0x6e, 0x8b, 0x3d) }, + { "DarkOrange", RGB(0xff, 0x8c, 0x00) }, + { "DarkOrange1", RGB(0xff, 0x7f, 0x0) }, + { "DarkOrange2", RGB(0xee, 0x76, 0x0) }, + { "DarkOrange3", RGB(0xcd, 0x66, 0x0) }, + { "DarkOrange4", RGB(0x8b, 0x45, 0x0) }, + { "DarkOrchid", RGB(0x99, 0x32, 0xcc) }, + { "DarkOrchid1", RGB(0xbf, 0x3e, 0xff) }, + { "DarkOrchid2", RGB(0xb2, 0x3a, 0xee) }, + { "DarkOrchid3", RGB(0x9a, 0x32, 0xcd) }, + { "DarkOrchid4", RGB(0x68, 0x22, 0x8b) }, + { "DarkRed", RGB(0x8b, 0x00, 0x00) }, + { "DarkSalmon", RGB(0xe9, 0x96, 0x7a) }, + { "DarkSeaGreen", RGB(0x8f, 0xbc, 0x8f) }, + { "DarkSeaGreen1", RGB(0xc1, 0xff, 0xc1) }, + { "DarkSeaGreen2", RGB(0xb4, 0xee, 0xb4) }, + { "DarkSeaGreen3", RGB(0x9b, 0xcd, 0x9b) }, + { "DarkSeaGreen4", RGB(0x69, 0x8b, 0x69) }, + { "DarkSlateBlue", RGB(0x48, 0x3d, 0x8b) }, + { "DarkSlateGray", RGB(0x2f, 0x4f, 0x4f) }, + { "DarkSlateGray1", RGB(0x97, 0xff, 0xff) }, + { "DarkSlateGray2", RGB(0x8d, 0xee, 0xee) }, + { "DarkSlateGray3", RGB(0x79, 0xcd, 0xcd) }, + { "DarkSlateGray4", RGB(0x52, 0x8b, 0x8b) }, + { "DarkSlateGrey", RGB(0x2f, 0x4f, 0x4f) }, + { "DarkTurquoise", RGB(0x00, 0xce, 0xd1) }, + { "DarkViolet", RGB(0x94, 0x00, 0xd3) }, + { "DarkYellow", RGB(0xbb, 0xbb, 0x00) }, + { "DeepPink", RGB(0xff, 0x14, 0x93) }, + { "DeepPink1", RGB(0xff, 0x14, 0x93) }, + { "DeepPink2", RGB(0xee, 0x12, 0x89) }, + { "DeepPink3", RGB(0xcd, 0x10, 0x76) }, + { "DeepPink4", RGB(0x8b, 0xa, 0x50) }, + { "DeepSkyBlue", RGB(0x00, 0xbf, 0xff) }, + { "DeepSkyBlue1", RGB(0x0, 0xbf, 0xff) }, + { "DeepSkyBlue2", RGB(0x0, 0xb2, 0xee) }, + { "DeepSkyBlue3", RGB(0x0, 0x9a, 0xcd) }, + { "DeepSkyBlue4", RGB(0x0, 0x68, 0x8b) }, + { "DimGray", RGB(0x69, 0x69, 0x69) }, + { "DimGrey", RGB(0x69, 0x69, 0x69) }, + { "DodgerBlue", RGB(0x1e, 0x90, 0xff) }, + { "DodgerBlue1", RGB(0x1e, 0x90, 0xff) }, + { "DodgerBlue2", RGB(0x1c, 0x86, 0xee) }, + { "DodgerBlue3", RGB(0x18, 0x74, 0xcd) }, + { "DodgerBlue4", RGB(0x10, 0x4e, 0x8b) }, + { "Firebrick", RGB(0xb2, 0x22, 0x22) }, + { "Firebrick1", RGB(0xff, 0x30, 0x30) }, + { "Firebrick2", RGB(0xee, 0x2c, 0x2c) }, + { "Firebrick3", RGB(0xcd, 0x26, 0x26) }, + { "Firebrick4", RGB(0x8b, 0x1a, 0x1a) }, + { "FloralWhite", RGB(0xff, 0xfa, 0xf0) }, + { "ForestGreen", RGB(0x22, 0x8b, 0x22) }, + { "Fuchsia", RGB(0xff, 0x00, 0xff) }, + { "Gainsboro", RGB(0xdc, 0xdc, 0xdc) }, + { "GhostWhite", RGB(0xf8, 0xf8, 0xff) }, + { "Gold", RGB(0xff, 0xd7, 0x00) }, + { "Gold1", RGB(0xff, 0xd7, 0x0) }, + { "Gold2", RGB(0xee, 0xc9, 0x0) }, + { "Gold3", RGB(0xcd, 0xad, 0x0) }, + { "Gold4", RGB(0x8b, 0x75, 0x0) }, + { "GoldenRod", RGB(0xda, 0xa5, 0x20) }, + { "Goldenrod1", RGB(0xff, 0xc1, 0x25) }, + { "Goldenrod2", RGB(0xee, 0xb4, 0x22) }, + { "Goldenrod3", RGB(0xcd, 0x9b, 0x1d) }, + { "Goldenrod4", RGB(0x8b, 0x69, 0x14) }, + { "Gray", RGB(0x80, 0x80, 0x80) }, + { "Gray0", RGB(0x0, 0x0, 0x0) }, + { "Gray1", RGB(0x3, 0x3, 0x3) }, + { "Gray10", RGB(0x1a, 0x1a, 0x1a) }, + { "Gray100", RGB(0xff, 0xff, 0xff) }, + { "Gray11", RGB(0x1c, 0x1c, 0x1c) }, + { "Gray12", RGB(0x1f, 0x1f, 0x1f) }, + { "Gray13", RGB(0x21, 0x21, 0x21) }, + { "Gray14", RGB(0x24, 0x24, 0x24) }, + { "Gray15", RGB(0x26, 0x26, 0x26) }, + { "Gray16", RGB(0x29, 0x29, 0x29) }, + { "Gray17", RGB(0x2b, 0x2b, 0x2b) }, + { "Gray18", RGB(0x2e, 0x2e, 0x2e) }, + { "Gray19", RGB(0x30, 0x30, 0x30) }, + { "Gray2", RGB(0x5, 0x5, 0x5) }, + { "Gray20", RGB(0x33, 0x33, 0x33) }, + { "Gray21", RGB(0x36, 0x36, 0x36) }, + { "Gray22", RGB(0x38, 0x38, 0x38) }, + { "Gray23", RGB(0x3b, 0x3b, 0x3b) }, + { "Gray24", RGB(0x3d, 0x3d, 0x3d) }, + { "Gray25", RGB(0x40, 0x40, 0x40) }, + { "Gray26", RGB(0x42, 0x42, 0x42) }, + { "Gray27", RGB(0x45, 0x45, 0x45) }, + { "Gray28", RGB(0x47, 0x47, 0x47) }, + { "Gray29", RGB(0x4a, 0x4a, 0x4a) }, + { "Gray3", RGB(0x8, 0x8, 0x8) }, + { "Gray30", RGB(0x4d, 0x4d, 0x4d) }, + { "Gray31", RGB(0x4f, 0x4f, 0x4f) }, + { "Gray32", RGB(0x52, 0x52, 0x52) }, + { "Gray33", RGB(0x54, 0x54, 0x54) }, + { "Gray34", RGB(0x57, 0x57, 0x57) }, + { "Gray35", RGB(0x59, 0x59, 0x59) }, + { "Gray36", RGB(0x5c, 0x5c, 0x5c) }, + { "Gray37", RGB(0x5e, 0x5e, 0x5e) }, + { "Gray38", RGB(0x61, 0x61, 0x61) }, + { "Gray39", RGB(0x63, 0x63, 0x63) }, + { "Gray4", RGB(0xa, 0xa, 0xa) }, + { "Gray40", RGB(0x66, 0x66, 0x66) }, + { "Gray41", RGB(0x69, 0x69, 0x69) }, + { "Gray42", RGB(0x6b, 0x6b, 0x6b) }, + { "Gray43", RGB(0x6e, 0x6e, 0x6e) }, + { "Gray44", RGB(0x70, 0x70, 0x70) }, + { "Gray45", RGB(0x73, 0x73, 0x73) }, + { "Gray46", RGB(0x75, 0x75, 0x75) }, + { "Gray47", RGB(0x78, 0x78, 0x78) }, + { "Gray48", RGB(0x7a, 0x7a, 0x7a) }, + { "Gray49", RGB(0x7d, 0x7d, 0x7d) }, + { "Gray5", RGB(0xd, 0xd, 0xd) }, + { "Gray50", RGB(0x7f, 0x7f, 0x7f) }, + { "Gray51", RGB(0x82, 0x82, 0x82) }, + { "Gray52", RGB(0x85, 0x85, 0x85) }, + { "Gray53", RGB(0x87, 0x87, 0x87) }, + { "Gray54", RGB(0x8a, 0x8a, 0x8a) }, + { "Gray55", RGB(0x8c, 0x8c, 0x8c) }, + { "Gray56", RGB(0x8f, 0x8f, 0x8f) }, + { "Gray57", RGB(0x91, 0x91, 0x91) }, + { "Gray58", RGB(0x94, 0x94, 0x94) }, + { "Gray59", RGB(0x96, 0x96, 0x96) }, + { "Gray6", RGB(0xf, 0xf, 0xf) }, + { "Gray60", RGB(0x99, 0x99, 0x99) }, + { "Gray61", RGB(0x9c, 0x9c, 0x9c) }, + { "Gray62", RGB(0x9e, 0x9e, 0x9e) }, + { "Gray63", RGB(0xa1, 0xa1, 0xa1) }, + { "Gray64", RGB(0xa3, 0xa3, 0xa3) }, + { "Gray65", RGB(0xa6, 0xa6, 0xa6) }, + { "Gray66", RGB(0xa8, 0xa8, 0xa8) }, + { "Gray67", RGB(0xab, 0xab, 0xab) }, + { "Gray68", RGB(0xad, 0xad, 0xad) }, + { "Gray69", RGB(0xb0, 0xb0, 0xb0) }, + { "Gray7", RGB(0x12, 0x12, 0x12) }, + { "Gray70", RGB(0xb3, 0xb3, 0xb3) }, + { "Gray71", RGB(0xb5, 0xb5, 0xb5) }, + { "Gray72", RGB(0xb8, 0xb8, 0xb8) }, + { "Gray73", RGB(0xba, 0xba, 0xba) }, + { "Gray74", RGB(0xbd, 0xbd, 0xbd) }, + { "Gray75", RGB(0xbf, 0xbf, 0xbf) }, + { "Gray76", RGB(0xc2, 0xc2, 0xc2) }, + { "Gray77", RGB(0xc4, 0xc4, 0xc4) }, + { "Gray78", RGB(0xc7, 0xc7, 0xc7) }, + { "Gray79", RGB(0xc9, 0xc9, 0xc9) }, + { "Gray8", RGB(0x14, 0x14, 0x14) }, + { "Gray80", RGB(0xcc, 0xcc, 0xcc) }, + { "Gray81", RGB(0xcf, 0xcf, 0xcf) }, + { "Gray82", RGB(0xd1, 0xd1, 0xd1) }, + { "Gray83", RGB(0xd4, 0xd4, 0xd4) }, + { "Gray84", RGB(0xd6, 0xd6, 0xd6) }, + { "Gray85", RGB(0xd9, 0xd9, 0xd9) }, + { "Gray86", RGB(0xdb, 0xdb, 0xdb) }, + { "Gray87", RGB(0xde, 0xde, 0xde) }, + { "Gray88", RGB(0xe0, 0xe0, 0xe0) }, + { "Gray89", RGB(0xe3, 0xe3, 0xe3) }, + { "Gray9", RGB(0x17, 0x17, 0x17) }, + { "Gray90", RGB(0xe5, 0xe5, 0xe5) }, + { "Gray91", RGB(0xe8, 0xe8, 0xe8) }, + { "Gray92", RGB(0xeb, 0xeb, 0xeb) }, + { "Gray93", RGB(0xed, 0xed, 0xed) }, + { "Gray94", RGB(0xf0, 0xf0, 0xf0) }, + { "Gray95", RGB(0xf2, 0xf2, 0xf2) }, + { "Gray96", RGB(0xf5, 0xf5, 0xf5) }, + { "Gray97", RGB(0xf7, 0xf7, 0xf7) }, + { "Gray98", RGB(0xfa, 0xfa, 0xfa) }, + { "Gray99", RGB(0xfc, 0xfc, 0xfc) }, + { "Green", RGB(0x00, 0x80, 0x00) }, + { "Green1", RGB(0x0, 0xff, 0x0) }, + { "Green2", RGB(0x0, 0xee, 0x0) }, + { "Green3", RGB(0x0, 0xcd, 0x0) }, + { "Green4", RGB(0x0, 0x8b, 0x0) }, + { "GreenYellow", RGB(0xad, 0xff, 0x2f) }, + { "Grey", RGB(0x80, 0x80, 0x80) }, + { "Grey0", RGB(0x0, 0x0, 0x0) }, + { "Grey1", RGB(0x3, 0x3, 0x3) }, + { "Grey10", RGB(0x1a, 0x1a, 0x1a) }, + { "Grey100", RGB(0xff, 0xff, 0xff) }, + { "Grey11", RGB(0x1c, 0x1c, 0x1c) }, + { "Grey12", RGB(0x1f, 0x1f, 0x1f) }, + { "Grey13", RGB(0x21, 0x21, 0x21) }, + { "Grey14", RGB(0x24, 0x24, 0x24) }, + { "Grey15", RGB(0x26, 0x26, 0x26) }, + { "Grey16", RGB(0x29, 0x29, 0x29) }, + { "Grey17", RGB(0x2b, 0x2b, 0x2b) }, + { "Grey18", RGB(0x2e, 0x2e, 0x2e) }, + { "Grey19", RGB(0x30, 0x30, 0x30) }, + { "Grey2", RGB(0x5, 0x5, 0x5) }, + { "Grey20", RGB(0x33, 0x33, 0x33) }, + { "Grey21", RGB(0x36, 0x36, 0x36) }, + { "Grey22", RGB(0x38, 0x38, 0x38) }, + { "Grey23", RGB(0x3b, 0x3b, 0x3b) }, + { "Grey24", RGB(0x3d, 0x3d, 0x3d) }, + { "Grey25", RGB(0x40, 0x40, 0x40) }, + { "Grey26", RGB(0x42, 0x42, 0x42) }, + { "Grey27", RGB(0x45, 0x45, 0x45) }, + { "Grey28", RGB(0x47, 0x47, 0x47) }, + { "Grey29", RGB(0x4a, 0x4a, 0x4a) }, + { "Grey3", RGB(0x8, 0x8, 0x8) }, + { "Grey30", RGB(0x4d, 0x4d, 0x4d) }, + { "Grey31", RGB(0x4f, 0x4f, 0x4f) }, + { "Grey32", RGB(0x52, 0x52, 0x52) }, + { "Grey33", RGB(0x54, 0x54, 0x54) }, + { "Grey34", RGB(0x57, 0x57, 0x57) }, + { "Grey35", RGB(0x59, 0x59, 0x59) }, + { "Grey36", RGB(0x5c, 0x5c, 0x5c) }, + { "Grey37", RGB(0x5e, 0x5e, 0x5e) }, + { "Grey38", RGB(0x61, 0x61, 0x61) }, + { "Grey39", RGB(0x63, 0x63, 0x63) }, + { "Grey4", RGB(0xa, 0xa, 0xa) }, + { "Grey40", RGB(0x66, 0x66, 0x66) }, + { "Grey41", RGB(0x69, 0x69, 0x69) }, + { "Grey42", RGB(0x6b, 0x6b, 0x6b) }, + { "Grey43", RGB(0x6e, 0x6e, 0x6e) }, + { "Grey44", RGB(0x70, 0x70, 0x70) }, + { "Grey45", RGB(0x73, 0x73, 0x73) }, + { "Grey46", RGB(0x75, 0x75, 0x75) }, + { "Grey47", RGB(0x78, 0x78, 0x78) }, + { "Grey48", RGB(0x7a, 0x7a, 0x7a) }, + { "Grey49", RGB(0x7d, 0x7d, 0x7d) }, + { "Grey5", RGB(0xd, 0xd, 0xd) }, + { "Grey50", RGB(0x7f, 0x7f, 0x7f) }, + { "Grey51", RGB(0x82, 0x82, 0x82) }, + { "Grey52", RGB(0x85, 0x85, 0x85) }, + { "Grey53", RGB(0x87, 0x87, 0x87) }, + { "Grey54", RGB(0x8a, 0x8a, 0x8a) }, + { "Grey55", RGB(0x8c, 0x8c, 0x8c) }, + { "Grey56", RGB(0x8f, 0x8f, 0x8f) }, + { "Grey57", RGB(0x91, 0x91, 0x91) }, + { "Grey58", RGB(0x94, 0x94, 0x94) }, + { "Grey59", RGB(0x96, 0x96, 0x96) }, + { "Grey6", RGB(0xf, 0xf, 0xf) }, + { "Grey60", RGB(0x99, 0x99, 0x99) }, + { "Grey61", RGB(0x9c, 0x9c, 0x9c) }, + { "Grey62", RGB(0x9e, 0x9e, 0x9e) }, + { "Grey63", RGB(0xa1, 0xa1, 0xa1) }, + { "Grey64", RGB(0xa3, 0xa3, 0xa3) }, + { "Grey65", RGB(0xa6, 0xa6, 0xa6) }, + { "Grey66", RGB(0xa8, 0xa8, 0xa8) }, + { "Grey67", RGB(0xab, 0xab, 0xab) }, + { "Grey68", RGB(0xad, 0xad, 0xad) }, + { "Grey69", RGB(0xb0, 0xb0, 0xb0) }, + { "Grey7", RGB(0x12, 0x12, 0x12) }, + { "Grey70", RGB(0xb3, 0xb3, 0xb3) }, + { "Grey71", RGB(0xb5, 0xb5, 0xb5) }, + { "Grey72", RGB(0xb8, 0xb8, 0xb8) }, + { "Grey73", RGB(0xba, 0xba, 0xba) }, + { "Grey74", RGB(0xbd, 0xbd, 0xbd) }, + { "Grey75", RGB(0xbf, 0xbf, 0xbf) }, + { "Grey76", RGB(0xc2, 0xc2, 0xc2) }, + { "Grey77", RGB(0xc4, 0xc4, 0xc4) }, + { "Grey78", RGB(0xc7, 0xc7, 0xc7) }, + { "Grey79", RGB(0xc9, 0xc9, 0xc9) }, + { "Grey8", RGB(0x14, 0x14, 0x14) }, + { "Grey80", RGB(0xcc, 0xcc, 0xcc) }, + { "Grey81", RGB(0xcf, 0xcf, 0xcf) }, + { "Grey82", RGB(0xd1, 0xd1, 0xd1) }, + { "Grey83", RGB(0xd4, 0xd4, 0xd4) }, + { "Grey84", RGB(0xd6, 0xd6, 0xd6) }, + { "Grey85", RGB(0xd9, 0xd9, 0xd9) }, + { "Grey86", RGB(0xdb, 0xdb, 0xdb) }, + { "Grey87", RGB(0xde, 0xde, 0xde) }, + { "Grey88", RGB(0xe0, 0xe0, 0xe0) }, + { "Grey89", RGB(0xe3, 0xe3, 0xe3) }, + { "Grey9", RGB(0x17, 0x17, 0x17) }, + { "Grey90", RGB(0xe5, 0xe5, 0xe5) }, + { "Grey91", RGB(0xe8, 0xe8, 0xe8) }, + { "Grey92", RGB(0xeb, 0xeb, 0xeb) }, + { "Grey93", RGB(0xed, 0xed, 0xed) }, + { "Grey94", RGB(0xf0, 0xf0, 0xf0) }, + { "Grey95", RGB(0xf2, 0xf2, 0xf2) }, + { "Grey96", RGB(0xf5, 0xf5, 0xf5) }, + { "Grey97", RGB(0xf7, 0xf7, 0xf7) }, + { "Grey98", RGB(0xfa, 0xfa, 0xfa) }, + { "Grey99", RGB(0xfc, 0xfc, 0xfc) }, + { "Honeydew", RGB(0xf0, 0xff, 0xf0) }, + { "Honeydew1", RGB(0xf0, 0xff, 0xf0) }, + { "Honeydew2", RGB(0xe0, 0xee, 0xe0) }, + { "Honeydew3", RGB(0xc1, 0xcd, 0xc1) }, + { "Honeydew4", RGB(0x83, 0x8b, 0x83) }, + { "HotPink", RGB(0xff, 0x69, 0xb4) }, + { "HotPink1", RGB(0xff, 0x6e, 0xb4) }, + { "HotPink2", RGB(0xee, 0x6a, 0xa7) }, + { "HotPink3", RGB(0xcd, 0x60, 0x90) }, + { "HotPink4", RGB(0x8b, 0x3a, 0x62) }, + { "IndianRed", RGB(0xcd, 0x5c, 0x5c) }, + { "IndianRed1", RGB(0xff, 0x6a, 0x6a) }, + { "IndianRed2", RGB(0xee, 0x63, 0x63) }, + { "IndianRed3", RGB(0xcd, 0x55, 0x55) }, + { "IndianRed4", RGB(0x8b, 0x3a, 0x3a) }, + { "Indigo", RGB(0x4b, 0x00, 0x82) }, + { "Ivory", RGB(0xff, 0xff, 0xf0) }, + { "Ivory1", RGB(0xff, 0xff, 0xf0) }, + { "Ivory2", RGB(0xee, 0xee, 0xe0) }, + { "Ivory3", RGB(0xcd, 0xcd, 0xc1) }, + { "Ivory4", RGB(0x8b, 0x8b, 0x83) }, + { "Khaki", RGB(0xf0, 0xe6, 0x8c) }, + { "Khaki1", RGB(0xff, 0xf6, 0x8f) }, + { "Khaki2", RGB(0xee, 0xe6, 0x85) }, + { "Khaki3", RGB(0xcd, 0xc6, 0x73) }, + { "Khaki4", RGB(0x8b, 0x86, 0x4e) }, + { "Lavender", RGB(0xe6, 0xe6, 0xfa) }, + { "LavenderBlush", RGB(0xff, 0xf0, 0xf5) }, + { "LavenderBlush1", RGB(0xff, 0xf0, 0xf5) }, + { "LavenderBlush2", RGB(0xee, 0xe0, 0xe5) }, + { "LavenderBlush3", RGB(0xcd, 0xc1, 0xc5) }, + { "LavenderBlush4", RGB(0x8b, 0x83, 0x86) }, + { "LawnGreen", RGB(0x7c, 0xfc, 0x00) }, + { "LemonChiffon", RGB(0xff, 0xfa, 0xcd) }, + { "LemonChiffon1", RGB(0xff, 0xfa, 0xcd) }, + { "LemonChiffon2", RGB(0xee, 0xe9, 0xbf) }, + { "LemonChiffon3", RGB(0xcd, 0xc9, 0xa5) }, + { "LemonChiffon4", RGB(0x8b, 0x89, 0x70) }, + { "LightBlue", RGB(0xad, 0xd8, 0xe6) }, + { "LightBlue1", RGB(0xbf, 0xef, 0xff) }, + { "LightBlue2", RGB(0xb2, 0xdf, 0xee) }, + { "LightBlue3", RGB(0x9a, 0xc0, 0xcd) }, + { "LightBlue4", RGB(0x68, 0x83, 0x8b) }, + { "LightCoral", RGB(0xf0, 0x80, 0x80) }, + { "LightCyan", RGB(0xe0, 0xff, 0xff) }, + { "LightCyan1", RGB(0xe0, 0xff, 0xff) }, + { "LightCyan2", RGB(0xd1, 0xee, 0xee) }, + { "LightCyan3", RGB(0xb4, 0xcd, 0xcd) }, + { "LightCyan4", RGB(0x7a, 0x8b, 0x8b) }, + { "LightGoldenrod", RGB(0xee, 0xdd, 0x82) }, + { "LightGoldenrod1", RGB(0xff, 0xec, 0x8b) }, + { "LightGoldenrod2", RGB(0xee, 0xdc, 0x82) }, + { "LightGoldenrod3", RGB(0xcd, 0xbe, 0x70) }, + { "LightGoldenrod4", RGB(0x8b, 0x81, 0x4c) }, + { "LightGoldenRodYellow", RGB(0xfa, 0xfa, 0xd2) }, + { "LightGray", RGB(0xd3, 0xd3, 0xd3) }, + { "LightGreen", RGB(0x90, 0xee, 0x90) }, + { "LightGrey", RGB(0xd3, 0xd3, 0xd3) }, + { "LightMagenta", RGB(0xff, 0xbb, 0xff) }, + { "LightPink", RGB(0xff, 0xb6, 0xc1) }, + { "LightPink1", RGB(0xff, 0xae, 0xb9) }, + { "LightPink2", RGB(0xee, 0xa2, 0xad) }, + { "LightPink3", RGB(0xcd, 0x8c, 0x95) }, + { "LightPink4", RGB(0x8b, 0x5f, 0x65) }, + { "LightRed", RGB(0xff, 0xbb, 0xbb) }, + { "LightSalmon", RGB(0xff, 0xa0, 0x7a) }, + { "LightSalmon1", RGB(0xff, 0xa0, 0x7a) }, + { "LightSalmon2", RGB(0xee, 0x95, 0x72) }, + { "LightSalmon3", RGB(0xcd, 0x81, 0x62) }, + { "LightSalmon4", RGB(0x8b, 0x57, 0x42) }, + { "LightSeaGreen", RGB(0x20, 0xb2, 0xaa) }, + { "LightSkyBlue", RGB(0x87, 0xce, 0xfa) }, + { "LightSkyBlue1", RGB(0xb0, 0xe2, 0xff) }, + { "LightSkyBlue2", RGB(0xa4, 0xd3, 0xee) }, + { "LightSkyBlue3", RGB(0x8d, 0xb6, 0xcd) }, + { "LightSkyBlue4", RGB(0x60, 0x7b, 0x8b) }, + { "LightSlateBlue", RGB(0x84, 0x70, 0xff) }, + { "LightSlateGray", RGB(0x77, 0x88, 0x99) }, + { "LightSlateGrey", RGB(0x77, 0x88, 0x99) }, + { "LightSteelBlue", RGB(0xb0, 0xc4, 0xde) }, + { "LightSteelBlue1", RGB(0xca, 0xe1, 0xff) }, + { "LightSteelBlue2", RGB(0xbc, 0xd2, 0xee) }, + { "LightSteelBlue3", RGB(0xa2, 0xb5, 0xcd) }, + { "LightSteelBlue4", RGB(0x6e, 0x7b, 0x8b) }, + { "LightYellow", RGB(0xff, 0xff, 0xe0) }, + { "LightYellow1", RGB(0xff, 0xff, 0xe0) }, + { "LightYellow2", RGB(0xee, 0xee, 0xd1) }, + { "LightYellow3", RGB(0xcd, 0xcd, 0xb4) }, + { "LightYellow4", RGB(0x8b, 0x8b, 0x7a) }, + { "Lime", RGB(0x00, 0xff, 0x00) }, + { "LimeGreen", RGB(0x32, 0xcd, 0x32) }, + { "Linen", RGB(0xfa, 0xf0, 0xe6) }, + { "Magenta", RGB(0xff, 0x00, 0xff) }, + { "Magenta1", RGB(0xff, 0x0, 0xff) }, + { "Magenta2", RGB(0xee, 0x0, 0xee) }, + { "Magenta3", RGB(0xcd, 0x0, 0xcd) }, + { "Magenta4", RGB(0x8b, 0x0, 0x8b) }, + { "Maroon", RGB(0x80, 0x00, 0x00) }, + { "Maroon1", RGB(0xff, 0x34, 0xb3) }, + { "Maroon2", RGB(0xee, 0x30, 0xa7) }, + { "Maroon3", RGB(0xcd, 0x29, 0x90) }, + { "Maroon4", RGB(0x8b, 0x1c, 0x62) }, + { "MediumAquamarine", RGB(0x66, 0xcd, 0xaa) }, + { "MediumBlue", RGB(0x00, 0x00, 0xcd) }, + { "MediumOrchid", RGB(0xba, 0x55, 0xd3) }, + { "MediumOrchid1", RGB(0xe0, 0x66, 0xff) }, + { "MediumOrchid2", RGB(0xd1, 0x5f, 0xee) }, + { "MediumOrchid3", RGB(0xb4, 0x52, 0xcd) }, + { "MediumOrchid4", RGB(0x7a, 0x37, 0x8b) }, + { "MediumPurple", RGB(0x93, 0x70, 0xdb) }, + { "MediumPurple1", RGB(0xab, 0x82, 0xff) }, + { "MediumPurple2", RGB(0x9f, 0x79, 0xee) }, + { "MediumPurple3", RGB(0x89, 0x68, 0xcd) }, + { "MediumPurple4", RGB(0x5d, 0x47, 0x8b) }, + { "MediumSeaGreen", RGB(0x3c, 0xb3, 0x71) }, + { "MediumSlateBlue", RGB(0x7b, 0x68, 0xee) }, + { "MediumSpringGreen", RGB(0x00, 0xfa, 0x9a) }, + { "MediumTurquoise", RGB(0x48, 0xd1, 0xcc) }, + { "MediumVioletRed", RGB(0xc7, 0x15, 0x85) }, + { "MidnightBlue", RGB(0x19, 0x19, 0x70) }, + { "MintCream", RGB(0xf5, 0xff, 0xfa) }, + { "MistyRose", RGB(0xff, 0xe4, 0xe1) }, + { "MistyRose1", RGB(0xff, 0xe4, 0xe1) }, + { "MistyRose2", RGB(0xee, 0xd5, 0xd2) }, + { "MistyRose3", RGB(0xcd, 0xb7, 0xb5) }, + { "MistyRose4", RGB(0x8b, 0x7d, 0x7b) }, + { "Moccasin", RGB(0xff, 0xe4, 0xb5) }, + { "NavajoWhite", RGB(0xff, 0xde, 0xad) }, + { "NavajoWhite1", RGB(0xff, 0xde, 0xad) }, + { "NavajoWhite2", RGB(0xee, 0xcf, 0xa1) }, + { "NavajoWhite3", RGB(0xcd, 0xb3, 0x8b) }, + { "NavajoWhite4", RGB(0x8b, 0x79, 0x5e) }, + { "Navy", RGB(0x00, 0x00, 0x80) }, + { "NavyBlue", RGB(0x0, 0x0, 0x80) }, + { "OldLace", RGB(0xfd, 0xf5, 0xe6) }, + { "Olive", RGB(0x80, 0x80, 0x00) }, + { "OliveDrab", RGB(0x6b, 0x8e, 0x23) }, + { "OliveDrab1", RGB(0xc0, 0xff, 0x3e) }, + { "OliveDrab2", RGB(0xb3, 0xee, 0x3a) }, + { "OliveDrab3", RGB(0x9a, 0xcd, 0x32) }, + { "OliveDrab4", RGB(0x69, 0x8b, 0x22) }, + { "Orange", RGB(0xff, 0xa5, 0x00) }, + { "Orange1", RGB(0xff, 0xa5, 0x0) }, + { "Orange2", RGB(0xee, 0x9a, 0x0) }, + { "Orange3", RGB(0xcd, 0x85, 0x0) }, + { "Orange4", RGB(0x8b, 0x5a, 0x0) }, + { "OrangeRed", RGB(0xff, 0x45, 0x00) }, + { "OrangeRed1", RGB(0xff, 0x45, 0x0) }, + { "OrangeRed2", RGB(0xee, 0x40, 0x0) }, + { "OrangeRed3", RGB(0xcd, 0x37, 0x0) }, + { "OrangeRed4", RGB(0x8b, 0x25, 0x0) }, + { "Orchid", RGB(0xda, 0x70, 0xd6) }, + { "Orchid1", RGB(0xff, 0x83, 0xfa) }, + { "Orchid2", RGB(0xee, 0x7a, 0xe9) }, + { "Orchid3", RGB(0xcd, 0x69, 0xc9) }, + { "Orchid4", RGB(0x8b, 0x47, 0x89) }, + { "PaleGoldenRod", RGB(0xee, 0xe8, 0xaa) }, + { "PaleGreen", RGB(0x98, 0xfb, 0x98) }, + { "PaleGreen1", RGB(0x9a, 0xff, 0x9a) }, + { "PaleGreen2", RGB(0x90, 0xee, 0x90) }, + { "PaleGreen3", RGB(0x7c, 0xcd, 0x7c) }, + { "PaleGreen4", RGB(0x54, 0x8b, 0x54) }, + { "PaleTurquoise", RGB(0xaf, 0xee, 0xee) }, + { "PaleTurquoise1", RGB(0xbb, 0xff, 0xff) }, + { "PaleTurquoise2", RGB(0xae, 0xee, 0xee) }, + { "PaleTurquoise3", RGB(0x96, 0xcd, 0xcd) }, + { "PaleTurquoise4", RGB(0x66, 0x8b, 0x8b) }, + { "PaleVioletRed", RGB(0xdb, 0x70, 0x93) }, + { "PaleVioletRed1", RGB(0xff, 0x82, 0xab) }, + { "PaleVioletRed2", RGB(0xee, 0x79, 0x9f) }, + { "PaleVioletRed3", RGB(0xcd, 0x68, 0x89) }, + { "PaleVioletRed4", RGB(0x8b, 0x47, 0x5d) }, + { "PapayaWhip", RGB(0xff, 0xef, 0xd5) }, + { "PeachPuff", RGB(0xff, 0xda, 0xb9) }, + { "PeachPuff1", RGB(0xff, 0xda, 0xb9) }, + { "PeachPuff2", RGB(0xee, 0xcb, 0xad) }, + { "PeachPuff3", RGB(0xcd, 0xaf, 0x95) }, + { "PeachPuff4", RGB(0x8b, 0x77, 0x65) }, + { "Peru", RGB(0xcd, 0x85, 0x3f) }, + { "Pink", RGB(0xff, 0xc0, 0xcb) }, + { "Pink1", RGB(0xff, 0xb5, 0xc5) }, + { "Pink2", RGB(0xee, 0xa9, 0xb8) }, + { "Pink3", RGB(0xcd, 0x91, 0x9e) }, + { "Pink4", RGB(0x8b, 0x63, 0x6c) }, + { "Plum", RGB(0xdd, 0xa0, 0xdd) }, + { "Plum1", RGB(0xff, 0xbb, 0xff) }, + { "Plum2", RGB(0xee, 0xae, 0xee) }, + { "Plum3", RGB(0xcd, 0x96, 0xcd) }, + { "Plum4", RGB(0x8b, 0x66, 0x8b) }, + { "PowderBlue", RGB(0xb0, 0xe0, 0xe6) }, + { "Purple", RGB(0x80, 0x00, 0x80) }, + { "Purple1", RGB(0x9b, 0x30, 0xff) }, + { "Purple2", RGB(0x91, 0x2c, 0xee) }, + { "Purple3", RGB(0x7d, 0x26, 0xcd) }, + { "Purple4", RGB(0x55, 0x1a, 0x8b) }, + { "RebeccaPurple", RGB(0x66, 0x33, 0x99) }, + { "Red", RGB(0xff, 0x00, 0x00) }, + { "Red1", RGB(0xff, 0x0, 0x0) }, + { "Red2", RGB(0xee, 0x0, 0x0) }, + { "Red3", RGB(0xcd, 0x0, 0x0) }, + { "Red4", RGB(0x8b, 0x0, 0x0) }, + { "RosyBrown", RGB(0xbc, 0x8f, 0x8f) }, + { "RosyBrown1", RGB(0xff, 0xc1, 0xc1) }, + { "RosyBrown2", RGB(0xee, 0xb4, 0xb4) }, + { "RosyBrown3", RGB(0xcd, 0x9b, 0x9b) }, + { "RosyBrown4", RGB(0x8b, 0x69, 0x69) }, + { "RoyalBlue", RGB(0x41, 0x69, 0xe1) }, + { "RoyalBlue1", RGB(0x48, 0x76, 0xff) }, + { "RoyalBlue2", RGB(0x43, 0x6e, 0xee) }, + { "RoyalBlue3", RGB(0x3a, 0x5f, 0xcd) }, + { "RoyalBlue4", RGB(0x27, 0x40, 0x8b) }, + { "SaddleBrown", RGB(0x8b, 0x45, 0x13) }, + { "Salmon", RGB(0xfa, 0x80, 0x72) }, + { "Salmon1", RGB(0xff, 0x8c, 0x69) }, + { "Salmon2", RGB(0xee, 0x82, 0x62) }, + { "Salmon3", RGB(0xcd, 0x70, 0x54) }, + { "Salmon4", RGB(0x8b, 0x4c, 0x39) }, + { "SandyBrown", RGB(0xf4, 0xa4, 0x60) }, + { "SeaGreen", RGB(0x2e, 0x8b, 0x57) }, + { "SeaGreen1", RGB(0x54, 0xff, 0x9f) }, + { "SeaGreen2", RGB(0x4e, 0xee, 0x94) }, + { "SeaGreen3", RGB(0x43, 0xcd, 0x80) }, + { "SeaGreen4", RGB(0x2e, 0x8b, 0x57) }, + { "SeaShell", RGB(0xff, 0xf5, 0xee) }, + { "Seashell1", RGB(0xff, 0xf5, 0xee) }, + { "Seashell2", RGB(0xee, 0xe5, 0xde) }, + { "Seashell3", RGB(0xcd, 0xc5, 0xbf) }, + { "Seashell4", RGB(0x8b, 0x86, 0x82) }, + { "Sienna", RGB(0xa0, 0x52, 0x2d) }, + { "Sienna1", RGB(0xff, 0x82, 0x47) }, + { "Sienna2", RGB(0xee, 0x79, 0x42) }, + { "Sienna3", RGB(0xcd, 0x68, 0x39) }, + { "Sienna4", RGB(0x8b, 0x47, 0x26) }, + { "Silver", RGB(0xc0, 0xc0, 0xc0) }, + { "SkyBlue", RGB(0x87, 0xce, 0xeb) }, + { "SkyBlue1", RGB(0x87, 0xce, 0xff) }, + { "SkyBlue2", RGB(0x7e, 0xc0, 0xee) }, + { "SkyBlue3", RGB(0x6c, 0xa6, 0xcd) }, + { "SkyBlue4", RGB(0x4a, 0x70, 0x8b) }, + { "SlateBlue", RGB(0x6a, 0x5a, 0xcd) }, + { "SlateBlue1", RGB(0x83, 0x6f, 0xff) }, + { "SlateBlue2", RGB(0x7a, 0x67, 0xee) }, + { "SlateBlue3", RGB(0x69, 0x59, 0xcd) }, + { "SlateBlue4", RGB(0x47, 0x3c, 0x8b) }, + { "SlateGray", RGB(0x70, 0x80, 0x90) }, + { "SlateGray1", RGB(0xc6, 0xe2, 0xff) }, + { "SlateGray2", RGB(0xb9, 0xd3, 0xee) }, + { "SlateGray3", RGB(0x9f, 0xb6, 0xcd) }, + { "SlateGray4", RGB(0x6c, 0x7b, 0x8b) }, + { "SlateGrey", RGB(0x70, 0x80, 0x90) }, + { "Snow", RGB(0xff, 0xfa, 0xfa) }, + { "Snow1", RGB(0xff, 0xfa, 0xfa) }, + { "Snow2", RGB(0xee, 0xe9, 0xe9) }, + { "Snow3", RGB(0xcd, 0xc9, 0xc9) }, + { "Snow4", RGB(0x8b, 0x89, 0x89) }, + { "SpringGreen", RGB(0x00, 0xff, 0x7f) }, + { "SpringGreen1", RGB(0x0, 0xff, 0x7f) }, + { "SpringGreen2", RGB(0x0, 0xee, 0x76) }, + { "SpringGreen3", RGB(0x0, 0xcd, 0x66) }, + { "SpringGreen4", RGB(0x0, 0x8b, 0x45) }, + { "SteelBlue", RGB(0x46, 0x82, 0xb4) }, + { "SteelBlue1", RGB(0x63, 0xb8, 0xff) }, + { "SteelBlue2", RGB(0x5c, 0xac, 0xee) }, + { "SteelBlue3", RGB(0x4f, 0x94, 0xcd) }, + { "SteelBlue4", RGB(0x36, 0x64, 0x8b) }, + { "Tan", RGB(0xd2, 0xb4, 0x8c) }, + { "Tan1", RGB(0xff, 0xa5, 0x4f) }, + { "Tan2", RGB(0xee, 0x9a, 0x49) }, + { "Tan3", RGB(0xcd, 0x85, 0x3f) }, + { "Tan4", RGB(0x8b, 0x5a, 0x2b) }, + { "Teal", RGB(0x00, 0x80, 0x80) }, + { "Thistle", RGB(0xd8, 0xbf, 0xd8) }, + { "Thistle1", RGB(0xff, 0xe1, 0xff) }, + { "Thistle2", RGB(0xee, 0xd2, 0xee) }, + { "Thistle3", RGB(0xcd, 0xb5, 0xcd) }, + { "Thistle4", RGB(0x8b, 0x7b, 0x8b) }, + { "Tomato", RGB(0xff, 0x63, 0x47) }, + { "Tomato1", RGB(0xff, 0x63, 0x47) }, + { "Tomato2", RGB(0xee, 0x5c, 0x42) }, + { "Tomato3", RGB(0xcd, 0x4f, 0x39) }, + { "Tomato4", RGB(0x8b, 0x36, 0x26) }, + { "Turquoise", RGB(0x40, 0xe0, 0xd0) }, + { "Turquoise1", RGB(0x0, 0xf5, 0xff) }, + { "Turquoise2", RGB(0x0, 0xe5, 0xee) }, + { "Turquoise3", RGB(0x0, 0xc5, 0xcd) }, + { "Turquoise4", RGB(0x0, 0x86, 0x8b) }, + { "Violet", RGB(0xee, 0x82, 0xee) }, + { "VioletRed", RGB(0xd0, 0x20, 0x90) }, + { "VioletRed1", RGB(0xff, 0x3e, 0x96) }, + { "VioletRed2", RGB(0xee, 0x3a, 0x8c) }, + { "VioletRed3", RGB(0xcd, 0x32, 0x78) }, + { "VioletRed4", RGB(0x8b, 0x22, 0x52) }, + { "WebGray", RGB(0x80, 0x80, 0x80) }, + { "WebGreen", RGB(0x0, 0x80, 0x0) }, + { "WebGrey", RGB(0x80, 0x80, 0x80) }, + { "WebMaroon", RGB(0x80, 0x0, 0x0) }, + { "WebPurple", RGB(0x80, 0x0, 0x80) }, + { "Wheat", RGB(0xf5, 0xde, 0xb3) }, + { "Wheat1", RGB(0xff, 0xe7, 0xba) }, + { "Wheat2", RGB(0xee, 0xd8, 0xae) }, + { "Wheat3", RGB(0xcd, 0xba, 0x96) }, + { "Wheat4", RGB(0x8b, 0x7e, 0x66) }, + { "White", RGB(0xff, 0xff, 0xff) }, + { "WhiteSmoke", RGB(0xf5, 0xf5, 0xf5) }, + { "X11Gray", RGB(0xbe, 0xbe, 0xbe) }, + { "X11Green", RGB(0x0, 0xff, 0x0) }, + { "X11Grey", RGB(0xbe, 0xbe, 0xbe) }, + { "X11Maroon", RGB(0xb0, 0x30, 0x60) }, + { "X11Purple", RGB(0xa0, 0x20, 0xf0) }, + { "Yellow", RGB(0xff, 0xff, 0x00) }, + { "Yellow1", RGB(0xff, 0xff, 0x0) }, + { "Yellow2", RGB(0xee, 0xee, 0x0) }, + { "Yellow3", RGB(0xcd, 0xcd, 0x0) }, + { "Yellow4", RGB(0x8b, 0x8b, 0x0) }, + { "YellowGreen", RGB(0x9a, 0xcd, 0x32) }, + { NULL, 0 }, }; RgbValue name_to_color(uint8_t *name) diff --git a/src/nvim/tag.c b/src/nvim/tag.c index 46fad688cc..1df1952f53 100644 --- a/src/nvim/tag.c +++ b/src/nvim/tag.c @@ -214,8 +214,12 @@ do_tag ( * Don't add a tag to the tagstack if 'tagstack' has been reset. */ if (!p_tgst && *tag != NUL) { - use_tagstack = FALSE; - new_tag = TRUE; + use_tagstack = false; + new_tag = true; + if (g_do_tagpreview != 0) { + xfree(ptag_entry.tagname); + ptag_entry.tagname = vim_strsave(tag); + } } else { if (g_do_tagpreview != 0) use_tagstack = FALSE; diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index b8b79632d7..64a63d8010 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -20,4 +20,5 @@ source test_statusline.vim source test_syn_attr.vim source test_tabline.vim source test_tabpage.vim +source test_tagjump.vim source test_unlet.vim diff --git a/src/nvim/testdir/test_tagjump.vim b/src/nvim/testdir/test_tagjump.vim new file mode 100644 index 0000000000..d8a333f44c --- /dev/null +++ b/src/nvim/testdir/test_tagjump.vim @@ -0,0 +1,9 @@ +" Tests for tagjump (tags and special searches) + +" SEGV occurs in older versions. (At least 7.4.1748 or older) +func Test_ptag_with_notagstack() + set notagstack + call assert_fails('ptag does_not_exist_tag_name', 'E426') + set tagstack&vim +endfunc +" vim: sw=2 et diff --git a/src/nvim/version.c b/src/nvim/version.c index a314817399..32d28a1b89 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -693,7 +693,7 @@ static int included_patches[] = { 1753, // 1753, // 1752, - // 1751, + 1751, // 1750 NA // 1749 NA 1748, |