aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/syntax.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r--src/nvim/syntax.c1114
1 files changed, 884 insertions, 230 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index 1f9dbd8228..37e5542dad 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -25,7 +25,6 @@
#include "nvim/memory.h"
#include "nvim/message.h"
#include "nvim/misc1.h"
-#include "nvim/misc2.h"
#include "nvim/keymap.h"
#include "nvim/garray.h"
#include "nvim/option.h"
@@ -393,7 +392,9 @@ void syntax_start(win_T *wp, linenr_T lnum)
* Also do this when a change was made, the current state may be invalid
* then.
*/
- if (syn_block != wp->w_s || changedtick != syn_buf->b_changedtick) {
+ if (syn_block != wp->w_s
+ || syn_buf != wp->w_buffer
+ || changedtick != syn_buf->b_changedtick) {
invalidate_current_state();
syn_buf = wp->w_buffer;
syn_block = wp->w_s;
@@ -812,19 +813,39 @@ static void syn_sync(win_T *wp, linenr_T start_lnum, synstate_T *last_valid)
validate_current_state();
}
+static void save_chartab(char_u *chartab)
+{
+ if (syn_block->b_syn_isk != empty_option) {
+ memmove(chartab, syn_buf->b_chartab, (size_t)32);
+ memmove(syn_buf->b_chartab, syn_win->w_s->b_syn_chartab, (size_t)32);
+ }
+}
+
+static void restore_chartab(char_u *chartab)
+{
+ if (syn_win->w_s->b_syn_isk != empty_option) {
+ memmove(syn_buf->b_chartab, chartab, (size_t)32);
+ }
+}
+
/*
* Return TRUE if the line-continuation pattern matches in line "lnum".
*/
static int syn_match_linecont(linenr_T lnum)
{
- regmmatch_T regmatch;
-
if (syn_block->b_syn_linecont_prog != NULL) {
+ regmmatch_T regmatch;
+ // chartab array for syn iskeyword
+ char_u buf_chartab[32];
+ save_chartab(buf_chartab);
+
regmatch.rmm_ic = syn_block->b_syn_linecont_ic;
regmatch.regprog = syn_block->b_syn_linecont_prog;
int r = syn_regexec(&regmatch, lnum, (colnr_T)0,
IF_SYN_TIME(&syn_block->b_syn_linecont_time));
syn_block->b_syn_linecont_prog = regmatch.regprog;
+
+ restore_chartab(buf_chartab);
return r;
}
return FALSE;
@@ -1617,8 +1638,9 @@ syn_current_attr (
lpos_T pos;
int lc_col;
reg_extmatch_T *cur_extmatch = NULL;
- char_u *line; /* current line. NOTE: becomes invalid after
- looking for a pattern match! */
+ char_u buf_chartab[32]; // chartab array for syn iskeyword
+ char_u *line; // current line. NOTE: becomes invalid after
+ // looking for a pattern match!
/* variables for zero-width matches that have a "nextgroup" argument */
int keep_next_list;
@@ -1668,6 +1690,9 @@ syn_current_attr (
* avoid matching the same item in the same position twice. */
ga_init(&zero_width_next_ga, (int)sizeof(int), 10);
+ // use syntax iskeyword option
+ save_chartab(buf_chartab);
+
/*
* Repeat matching keywords and patterns, to find contained items at the
* same column. This stops when there are no extra matches at the current
@@ -1992,6 +2017,8 @@ syn_current_attr (
} while (found_match);
+ restore_chartab(buf_chartab);
+
/*
* Use attributes from the current state, if within its highlighting.
* If not, use attributes from the current-but-one state, etc.
@@ -2522,7 +2549,8 @@ find_endpos (
regmmatch_T best_regmatch; /* startpos/endpos of best match */
lpos_T pos;
char_u *line;
- int had_match = FALSE;
+ int had_match = false;
+ char_u buf_chartab[32]; // chartab array for syn option iskeyword
/* just in case we are invoked for a keyword */
if (idx < 0)
@@ -2562,9 +2590,13 @@ find_endpos (
unref_extmatch(re_extmatch_in);
re_extmatch_in = ref_extmatch(start_ext);
- matchcol = startpos->col; /* start looking for a match at sstart */
- start_idx = idx; /* remember the first END pattern. */
- best_regmatch.startpos[0].col = 0; /* avoid compiler warning */
+ matchcol = startpos->col; // start looking for a match at sstart
+ start_idx = idx; // remember the first END pattern.
+ best_regmatch.startpos[0].col = 0; // avoid compiler warning
+
+ // use syntax iskeyword option
+ save_chartab(buf_chartab);
+
for (;; ) {
/*
* Find end pattern that matches first after "matchcol".
@@ -2707,6 +2739,8 @@ find_endpos (
if (!had_match)
m_endpos->lnum = 0;
+ restore_chartab(buf_chartab);
+
/* Remove external matches. */
unref_extmatch(re_extmatch_in);
re_extmatch_in = NULL;
@@ -3027,6 +3061,46 @@ static void syn_cmd_spell(exarg_T *eap, int syncing)
redraw_win_later(curwin, NOT_VALID);
}
+/// Handle ":syntax iskeyword" command.
+static void syn_cmd_iskeyword(exarg_T *eap, int syncing)
+{
+ char_u *arg = eap->arg;
+ char_u save_chartab[32];
+ char_u *save_isk;
+
+ if (eap->skip) {
+ return;
+ }
+
+ arg = skipwhite(arg);
+ if (*arg == NUL) {
+ MSG_PUTS("\n");
+ MSG_PUTS(_("syntax iskeyword "));
+ if (curwin->w_s->b_syn_isk != empty_option) {
+ msg_outtrans(curwin->w_s->b_syn_isk);
+ } else {
+ msg_outtrans((char_u *)"not set");
+ }
+ } else {
+ if (STRNICMP(arg, "clear", 5) == 0) {
+ memmove(curwin->w_s->b_syn_chartab, curbuf->b_chartab, (size_t)32);
+ clear_string_option(&curwin->w_s->b_syn_isk);
+ } else {
+ memmove(save_chartab, curbuf->b_chartab, (size_t)32);
+ save_isk = curbuf->b_p_isk;
+ curbuf->b_p_isk = vim_strsave(arg);
+
+ buf_init_chartab(curbuf, false);
+ memmove(curwin->w_s->b_syn_chartab, curbuf->b_chartab, (size_t)32);
+ memmove(curbuf->b_chartab, save_chartab, (size_t)32);
+ clear_string_option(&curwin->w_s->b_syn_isk);
+ curwin->w_s->b_syn_isk = curbuf->b_p_isk;
+ curbuf->b_p_isk = save_isk;
+ }
+ }
+ redraw_win_later(curwin, NOT_VALID);
+}
+
/*
* Clear all syntax info for one buffer.
*/
@@ -3065,6 +3139,7 @@ void syntax_clear(synblock_T *block)
xfree(block->b_syn_linecont_pat);
block->b_syn_linecont_pat = NULL;
block->b_syn_folditems = 0;
+ clear_string_option(&block->b_syn_isk);
/* free the stored states */
syn_stack_free_all(block);
@@ -3107,6 +3182,7 @@ static void syntax_sync_clear(void)
curwin->w_s->b_syn_linecont_prog = NULL;
xfree(curwin->w_s->b_syn_linecont_pat);
curwin->w_s->b_syn_linecont_pat = NULL;
+ clear_string_option(&curwin->w_s->b_syn_isk);
syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */
}
@@ -3266,6 +3342,7 @@ static void syn_cmd_enable(exarg_T *eap, int syncing)
/*
* Handle ":syntax reset" command.
+ * It actually resets highlighting, not syntax.
*/
static void syn_cmd_reset(exarg_T *eap, int syncing)
{
@@ -3300,7 +3377,7 @@ static void syn_cmd_onoff(exarg_T *eap, char *name)
eap->nextcmd = check_nextcmd(eap->arg);
if (!eap->skip) {
char buf[100];
- strncpy(buf, "so ", 4);
+ memcpy(buf, "so ", 4);
vim_snprintf(buf + 3, sizeof(buf) - 3, SYNTAX_FNAME, name);
do_cmdline_cmd(buf);
}
@@ -4131,9 +4208,10 @@ static void syn_cmd_include(exarg_T *eap, int syncing)
current_syn_inc_tag = ++running_syn_inc_tag;
prev_toplvl_grp = curwin->w_s->b_syn_topgrp;
curwin->w_s->b_syn_topgrp = sgl_id;
- if (source ? do_source(eap->arg, FALSE, DOSO_NONE) == FAIL
- : source_runtime(eap->arg, TRUE) == FAIL)
+ if (source ? do_source(eap->arg, false, DOSO_NONE) == FAIL
+ : source_runtime(eap->arg, DIP_ALL) == FAIL) {
EMSG2(_(e_notopen), eap->arg);
+ }
curwin->w_s->b_syn_topgrp = prev_toplvl_grp;
current_syn_inc_tag = prev_syn_inc_tag;
}
@@ -5363,24 +5441,25 @@ struct subcommand {
static struct subcommand subcommands[] =
{
- {"case", syn_cmd_case},
- {"clear", syn_cmd_clear},
- {"cluster", syn_cmd_cluster},
- {"conceal", syn_cmd_conceal},
- {"enable", syn_cmd_enable},
- {"include", syn_cmd_include},
- {"keyword", syn_cmd_keyword},
- {"list", syn_cmd_list},
- {"manual", syn_cmd_manual},
- {"match", syn_cmd_match},
- {"on", syn_cmd_on},
- {"off", syn_cmd_off},
- {"region", syn_cmd_region},
- {"reset", syn_cmd_reset},
- {"spell", syn_cmd_spell},
- {"sync", syn_cmd_sync},
- {"", syn_cmd_list},
- {NULL, NULL}
+ { "case", syn_cmd_case },
+ { "clear", syn_cmd_clear },
+ { "cluster", syn_cmd_cluster },
+ { "conceal", syn_cmd_conceal },
+ { "enable", syn_cmd_enable },
+ { "include", syn_cmd_include },
+ { "iskeyword", syn_cmd_iskeyword },
+ { "keyword", syn_cmd_keyword },
+ { "list", syn_cmd_list },
+ { "manual", syn_cmd_manual },
+ { "match", syn_cmd_match },
+ { "on", syn_cmd_on },
+ { "off", syn_cmd_off },
+ { "region", syn_cmd_region },
+ { "reset", syn_cmd_reset },
+ { "spell", syn_cmd_spell },
+ { "sync", syn_cmd_sync },
+ { "", syn_cmd_list },
+ { NULL, NULL }
};
/*
@@ -5434,6 +5513,7 @@ void ex_ownsyntax(exarg_T *eap)
clear_string_option(&curwin->w_s->b_p_spc);
clear_string_option(&curwin->w_s->b_p_spf);
clear_string_option(&curwin->w_s->b_p_spl);
+ clear_string_option(&curwin->w_s->b_syn_isk);
}
/* save value of b:current_syntax */
@@ -5459,7 +5539,7 @@ void ex_ownsyntax(exarg_T *eap)
}
}
-int syntax_present(win_T *win)
+bool syntax_present(win_T *win)
{
return win->w_s->b_syn_patterns.ga_len != 0
|| win->w_s->b_syn_clusters.ga_len != 0
@@ -5582,6 +5662,24 @@ int get_syntax_info(int *seqnrp)
return current_flags;
}
+
+/// Get the sequence number of the concealed file position.
+///
+/// @return seqnr if the file position is concealed, 0 otherwise.
+int syn_get_concealed_id(win_T *wp, linenr_T lnum, colnr_T col)
+{
+ int seqnr;
+ int syntax_flags;
+
+ (void)syn_get_id(wp, lnum, col, false, NULL, false);
+ syntax_flags = get_syntax_info(&seqnr);
+
+ if (syntax_flags & HL_CONCEAL) {
+ return seqnr;
+ }
+ return 0;
+}
+
/*
* Return conceal substitution character
*/
@@ -5805,6 +5903,8 @@ static char *highlight_init_both[] =
"VertSplit cterm=reverse gui=reverse",
"WildMenu ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black",
"default link EndOfBuffer NonText",
+ "default link QuickFixLine Search",
+ "default link Substitute Search",
NULL
};
@@ -5945,12 +6045,12 @@ init_highlight (
if (get_var_value((char_u *)"g:syntax_on") != NULL) {
static int recursive = 0;
- if (recursive >= 5)
+ if (recursive >= 5) {
EMSG(_("E679: recursive loop loading syncolor.vim"));
- else {
- ++recursive;
- (void)source_runtime((char_u *)"syntax/syncolor.vim", TRUE);
- --recursive;
+ } else {
+ recursive++;
+ (void)source_runtime((char_u *)"syntax/syncolor.vim", DIP_ALL);
+ recursive--;
}
}
}
@@ -5963,22 +6063,24 @@ int load_colors(char_u *name)
{
char_u *buf;
int retval = FAIL;
- static int recursive = FALSE;
+ static int recursive = false;
- /* When being called recursively, this is probably because setting
- * 'background' caused the highlighting to be reloaded. This means it is
- * working, thus we should return OK. */
- if (recursive)
+ // When being called recursively, this is probably because setting
+ // 'background' caused the highlighting to be reloaded. This means it is
+ // working, thus we should return OK.
+ if (recursive) {
return OK;
+ }
- recursive = TRUE;
- buf = xmalloc(STRLEN(name) + 12);
- sprintf((char *)buf, "colors/%s.vim", name);
- retval = source_runtime(buf, FALSE);
+ recursive = true;
+ size_t buflen = STRLEN(name) + 12;
+ buf = xmalloc(buflen);
+ snprintf((char *)buf, buflen, "colors/%s.vim", name);
+ retval = source_runtime(buf, DIP_START + DIP_OPT);
xfree(buf);
apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf);
- recursive = FALSE;
+ recursive = false;
ui_refresh();
return retval;
@@ -6498,6 +6600,9 @@ do_highlight (
else {
if (is_normal_group) {
HL_TABLE()[idx].sg_attr = 0;
+ // Need to update all groups, because they might be using "bg" and/or
+ // "fg", which have been changed now.
+ highlight_attr_set_all();
// If the normal group has changed, it is simpler to refresh every UI
ui_refresh();
} else
@@ -6797,8 +6902,8 @@ static int highlight_list_arg(int id, int didh, int type, int iarg, char_u *sarg
for (i = 0; hl_attr_table[i] != 0; ++i) {
if (iarg & hl_attr_table[i]) {
if (buf[0] != NUL)
- vim_strcat(buf, (char_u *)",", 100);
- vim_strcat(buf, (char_u *)hl_name_table[i], 100);
+ xstrlcat((char *)buf, ",", 100);
+ xstrlcat((char *)buf, hl_name_table[i], 100);
iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
}
}
@@ -6874,8 +6979,23 @@ highlight_color (
else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
return NULL;
if (modec == 'g') {
- if (fg)
+ if (what[2] == '#' && ui_rgb_attached()) {
+ if (fg) {
+ n = HL_TABLE()[id - 1].sg_rgb_fg;
+ } else if (sp) {
+ n = HL_TABLE()[id - 1].sg_rgb_sp;
+ } else {
+ n = HL_TABLE()[id - 1].sg_rgb_bg;
+ }
+ if (n < 0 || n > 0xffffff) {
+ return NULL;
+ }
+ snprintf((char *)name, sizeof(name), "#%06x", n);
+ return name;
+ }
+ if (fg) {
return HL_TABLE()[id - 1].sg_rgb_fg_name;
+ }
if (sp) {
return HL_TABLE()[id - 1].sg_rgb_sp_name;
}
@@ -6884,11 +7004,15 @@ highlight_color (
if (font || sp)
return NULL;
if (modec == 'c') {
- if (fg)
+ if (fg) {
n = HL_TABLE()[id - 1].sg_cterm_fg - 1;
- else
+ } else {
n = HL_TABLE()[id - 1].sg_cterm_bg - 1;
- sprintf((char *)name, "%d", n);
+ }
+ if (n < 0) {
+ return NULL;
+ }
+ snprintf((char *)name, sizeof(name), "%d", n);
return name;
}
/* term doesn't have color */
@@ -7038,16 +7162,13 @@ int syn_namen2id(char_u *linep, int len)
*/
int syn_check_group(char_u *pp, int len)
{
- int id;
- char_u *name;
-
- name = vim_strnsave(pp, len);
-
- id = syn_name2id(name);
- if (id == 0) /* doesn't exist yet */
+ char_u *name = vim_strnsave(pp, len);
+ int id = syn_name2id(name);
+ if (id == 0) { // doesn't exist yet
id = syn_add_group(name);
- else
+ } else {
xfree(name);
+ }
return id;
}
@@ -7147,6 +7268,23 @@ int syn_get_final_id(int hl_id)
return hl_id;
}
+/// Refresh the color attributes of all highlight groups.
+static void highlight_attr_set_all(void)
+{
+ for (int idx = 0; idx < highlight_ga.ga_len; idx++) {
+ struct hl_group *sgp = &HL_TABLE()[idx];
+ if (sgp->sg_rgb_bg_name != NULL) {
+ sgp->sg_rgb_bg = name_to_color(sgp->sg_rgb_bg_name);
+ }
+ if (sgp->sg_rgb_fg_name != NULL) {
+ sgp->sg_rgb_fg = name_to_color(sgp->sg_rgb_fg_name);
+ }
+ if (sgp->sg_rgb_sp_name != NULL) {
+ sgp->sg_rgb_sp = name_to_color(sgp->sg_rgb_sp_name);
+ }
+ set_hl_attr(idx);
+ }
+}
/*
* Translate the 'highlight' option into attributes in highlight_attr[] and
@@ -7409,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)
@@ -7588,6 +8238,10 @@ RgbValue name_to_color(uint8_t *name)
&& isxdigit(name[6]) && name[7] == NUL) {
// rgb hex string
return strtol((char *)(name + 1), NULL, 16);
+ } else if (!STRICMP(name, "bg") || !STRICMP(name, "background")) {
+ return normal_bg;
+ } else if (!STRICMP(name, "fg") || !STRICMP(name, "foreground")) {
+ return normal_fg;
}
for (int i = 0; color_name_table[i].name != NULL; i++) {