summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-19 21:05:21 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-19 21:05:21 +0200
commit68015bbd846181d49842d6ef60246c4195d20b89 (patch)
treec2f2a0c9824994cb2790f5235e7868a123fff580
parent72ab729c3dcdea0fba44d8e676602c847e841bcd (diff)
downloadvim-68015bbd846181d49842d6ef60246c4195d20b89.zip
patch 7.4.2073
Problem: rgb.txt is read for every color name. Solution: Load rgb.txt once. (Christian Brabandt) Add a test.
-rw-r--r--runtime/rgb.txt31
-rw-r--r--src/term.c114
-rw-r--r--src/testdir/test_syn_attr.vim783
-rw-r--r--src/version.c2
4 files changed, 878 insertions, 52 deletions
diff --git a/runtime/rgb.txt b/runtime/rgb.txt
index 5bc2baa3d..eeaadbe9f 100644
--- a/runtime/rgb.txt
+++ b/runtime/rgb.txt
@@ -1,4 +1,3 @@
-! $XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp $
255 250 250 snow
248 248 255 ghost white
248 248 255 GhostWhite
@@ -58,6 +57,14 @@
119 136 153 LightSlateGrey
190 190 190 gray
190 190 190 grey
+190 190 190 x11 gray
+190 190 190 X11Gray
+190 190 190 x11 grey
+190 190 190 X11Grey
+128 128 128 web gray
+128 128 128 WebGray
+128 128 128 web grey
+128 128 128 WebGrey
211 211 211 light grey
211 211 211 LightGrey
211 211 211 light gray
@@ -106,6 +113,7 @@
72 209 204 MediumTurquoise
64 224 208 turquoise
0 255 255 cyan
+ 0 255 255 aqua
224 255 255 light cyan
224 255 255 LightCyan
95 158 160 cadet blue
@@ -132,6 +140,11 @@
124 252 0 lawn green
124 252 0 LawnGreen
0 255 0 green
+ 0 255 0 lime
+ 0 255 0 x11 green
+ 0 255 0 X11Green
+ 0 128 0 web green
+ 0 128 0 WebGreen
127 255 0 chartreuse
0 250 154 medium spring green
0 250 154 MediumSpringGreen
@@ -203,11 +216,16 @@
219 112 147 pale violet red
219 112 147 PaleVioletRed
176 48 96 maroon
+176 48 96 x11 maroon
+176 48 96 X11Maroon
+128 0 0 web maroon
+128 0 0 WebMaroon
199 21 133 medium violet red
199 21 133 MediumVioletRed
208 32 144 violet red
208 32 144 VioletRed
255 0 255 magenta
+255 0 255 fuchsia
238 130 238 violet
221 160 221 plum
218 112 214 orchid
@@ -220,6 +238,10 @@
138 43 226 blue violet
138 43 226 BlueViolet
160 32 240 purple
+160 32 240 x11 purple
+160 32 240 X11Purple
+128 0 128 web purple
+128 0 128 WebPurple
147 112 219 medium purple
147 112 219 MediumPurple
216 191 216 thistle
@@ -751,3 +773,10 @@
139 0 0 DarkRed
144 238 144 light green
144 238 144 LightGreen
+220 20 60 crimson
+ 75 0 130 indigo
+128 128 0 olive
+102 51 153 rebecca purple
+102 51 153 RebeccaPurple
+192 192 192 silver
+ 0 128 128 teal
diff --git a/src/term.c b/src/term.c
index ba2d473bc..aecdadfed 100644
--- a/src/term.c
+++ b/src/term.c
@@ -6086,6 +6086,8 @@ gui_get_color_cmn(char_u *name)
guicolor_T color;
};
+ /* Only non X11 colors (not present in rgb.txt) and colors in
+ * color_names[], useful when $VIMRUNTIME is not found,. */
static struct rgbcolor_table_S rgb_table[] = {
{(char_u *)"black", RGB(0x00, 0x00, 0x00)},
{(char_u *)"blue", RGB(0x00, 0x00, 0xFF)},
@@ -6100,26 +6102,8 @@ gui_get_color_cmn(char_u *name)
{(char_u *)"darkred", RGB(0x8B, 0x00, 0x00)},
{(char_u *)"darkyellow", RGB(0x8B, 0x8B, 0x00)}, /* No X11 */
{(char_u *)"gray", RGB(0xBE, 0xBE, 0xBE)},
- {(char_u *)"gray10", RGB(0x1A, 0x1A, 0x1A)},
- {(char_u *)"gray20", RGB(0x33, 0x33, 0x33)},
- {(char_u *)"gray30", RGB(0x4D, 0x4D, 0x4D)},
- {(char_u *)"gray40", RGB(0x66, 0x66, 0x66)},
- {(char_u *)"gray50", RGB(0x7F, 0x7F, 0x7F)},
- {(char_u *)"gray60", RGB(0x99, 0x99, 0x99)},
- {(char_u *)"gray70", RGB(0xB3, 0xB3, 0xB3)},
- {(char_u *)"gray80", RGB(0xCC, 0xCC, 0xCC)},
- {(char_u *)"gray90", RGB(0xE5, 0xE5, 0xE5)},
{(char_u *)"green", RGB(0x00, 0xFF, 0x00)},
{(char_u *)"grey", RGB(0xBE, 0xBE, 0xBE)},
- {(char_u *)"grey10", RGB(0x1A, 0x1A, 0x1A)},
- {(char_u *)"grey20", RGB(0x33, 0x33, 0x33)},
- {(char_u *)"grey30", RGB(0x4D, 0x4D, 0x4D)},
- {(char_u *)"grey40", RGB(0x66, 0x66, 0x66)},
- {(char_u *)"grey50", RGB(0x7F, 0x7F, 0x7F)},
- {(char_u *)"grey60", RGB(0x99, 0x99, 0x99)},
- {(char_u *)"grey70", RGB(0xB3, 0xB3, 0xB3)},
- {(char_u *)"grey80", RGB(0xCC, 0xCC, 0xCC)},
- {(char_u *)"grey90", RGB(0xE5, 0xE5, 0xE5)},
{(char_u *)"lightblue", RGB(0xAD, 0xD8, 0xE6)},
{(char_u *)"lightcyan", RGB(0xE0, 0xFF, 0xFF)},
{(char_u *)"lightgray", RGB(0xD3, 0xD3, 0xD3)},
@@ -6129,16 +6113,13 @@ gui_get_color_cmn(char_u *name)
{(char_u *)"lightred", RGB(0xFF, 0x8B, 0x8B)}, /* No X11 */
{(char_u *)"lightyellow", RGB(0xFF, 0xFF, 0xE0)},
{(char_u *)"magenta", RGB(0xFF, 0x00, 0xFF)},
- {(char_u *)"orange", RGB(0xFF, 0xA5, 0x00)},
- {(char_u *)"purple", RGB(0xA0, 0x20, 0xF0)},
{(char_u *)"red", RGB(0xFF, 0x00, 0x00)},
- {(char_u *)"seagreen", RGB(0x2E, 0x8B, 0x57)},
- {(char_u *)"slateblue", RGB(0x6A, 0x5A, 0xCD)},
- {(char_u *)"violet", RGB(0xEE, 0x82, 0xEE)},
{(char_u *)"white", RGB(0xFF, 0xFF, 0xFF)},
{(char_u *)"yellow", RGB(0xFF, 0xFF, 0x00)},
};
+ static struct rgbcolor_table_S *colornames_table;
+ static int size = 0;
if (name[0] == '#' && STRLEN(name) == 7)
{
@@ -6159,44 +6140,75 @@ gui_get_color_cmn(char_u *name)
/*
* Last attempt. Look in the file "$VIM/rgb.txt".
*/
+ if (size == 0)
+ {
+ int counting;
- fname = expand_env_save((char_u *)"$VIMRUNTIME/rgb.txt");
- if (fname == NULL)
- return INVALCOLOR;
+ /* colornames_table not yet initialized */
+ fname = expand_env_save((char_u *)"$VIMRUNTIME/rgb.txt");
+ if (fname == NULL)
+ return INVALCOLOR;
- fd = fopen((char *)fname, "rt");
- vim_free(fname);
- if (fd == NULL)
- {
- if (p_verbose > 1)
- verb_msg((char_u *)_("Cannot open $VIMRUNTIME/rgb.txt"));
- return INVALCOLOR;
- }
+ fd = fopen((char *)fname, "rt");
+ vim_free(fname);
+ if (fd == NULL)
+ {
+ if (p_verbose > 1)
+ verb_msg((char_u *)_("Cannot open $VIMRUNTIME/rgb.txt"));
+ return INVALCOLOR;
+ }
- while (!feof(fd))
- {
- size_t len;
- int pos;
+ for (counting = 1; counting >= 0; --counting)
+ {
+ if (!counting)
+ {
+ colornames_table = (struct rgbcolor_table_S *)alloc(
+ (unsigned)(sizeof(struct rgbcolor_table_S) * size));
+ if (colornames_table == NULL)
+ {
+ fclose(fd);
+ return INVALCOLOR;
+ }
+ rewind(fd);
+ }
+ size = 0;
- ignoredp = fgets(line, LINE_LEN, fd);
- len = strlen(line);
+ while (!feof(fd))
+ {
+ size_t len;
+ int pos;
- if (len <= 1 || line[len - 1] != '\n')
- continue;
+ ignoredp = fgets(line, LINE_LEN, fd);
+ len = strlen(line);
- line[len - 1] = '\0';
+ if (len <= 1 || line[len - 1] != '\n')
+ continue;
- i = sscanf(line, "%d %d %d %n", &r, &g, &b, &pos);
- if (i != 3)
- continue;
+ line[len - 1] = '\0';
- if (STRICMP(line + pos, name) == 0)
- {
- fclose(fd);
- return (guicolor_T)RGB(r, g, b);
+ i = sscanf(line, "%d %d %d %n", &r, &g, &b, &pos);
+ if (i != 3)
+ continue;
+
+ if (!counting)
+ {
+ char_u *s = vim_strsave((char_u *)line + pos);
+
+ if (s == NULL)
+ return INVALCOLOR;
+ colornames_table[size].color_name = s;
+ colornames_table[size].color = (guicolor_T)RGB(r, g, b);
+ }
+ size++;
+ }
}
+ fclose(fd);
}
- fclose(fd);
+
+ for (i = 0; i < size; i++)
+ if (STRICMP(name, colornames_table[i].color_name) == 0)
+ return colornames_table[i].color;
+
return INVALCOLOR;
}
#endif
diff --git a/src/testdir/test_syn_attr.vim b/src/testdir/test_syn_attr.vim
index fe6acaf6e..27f9fc0dd 100644
--- a/src/testdir/test_syn_attr.vim
+++ b/src/testdir/test_syn_attr.vim
@@ -33,3 +33,786 @@ func Test_missing_attr()
call assert_equal(fontname, synIDattr(hlID("Mine"), "font", 'gui'))
endif
endfunc
+
+func Test_color_names()
+ let colors = [
+ \ 'AliceBlue',
+ \ 'AntiqueWhite',
+ \ 'AntiqueWhite1',
+ \ 'AntiqueWhite2',
+ \ 'AntiqueWhite3',
+ \ 'AntiqueWhite4',
+ \ 'BlanchedAlmond',
+ \ 'BlueViolet',
+ \ 'CadetBlue',
+ \ 'CadetBlue1',
+ \ 'CadetBlue2',
+ \ 'CadetBlue3',
+ \ 'CadetBlue4',
+ \ 'CornflowerBlue',
+ \ 'DarkBlue',
+ \ 'DarkCyan',
+ \ 'DarkGoldenrod',
+ \ 'DarkGoldenrod1',
+ \ 'DarkGoldenrod2',
+ \ 'DarkGoldenrod3',
+ \ 'DarkGoldenrod4',
+ \ 'DarkGray',
+ \ 'DarkGreen',
+ \ 'DarkGrey',
+ \ 'DarkKhaki',
+ \ 'DarkMagenta',
+ \ 'DarkOliveGreen',
+ \ 'DarkOliveGreen1',
+ \ 'DarkOliveGreen2',
+ \ 'DarkOliveGreen3',
+ \ 'DarkOliveGreen4',
+ \ 'DarkOrange',
+ \ 'DarkOrange1',
+ \ 'DarkOrange2',
+ \ 'DarkOrange3',
+ \ 'DarkOrange4',
+ \ 'DarkOrchid',
+ \ 'DarkOrchid1',
+ \ 'DarkOrchid2',
+ \ 'DarkOrchid3',
+ \ 'DarkOrchid4',
+ \ 'DarkRed',
+ \ 'DarkSalmon',
+ \ 'DarkSeaGreen',
+ \ 'DarkSeaGreen1',
+ \ 'DarkSeaGreen2',
+ \ 'DarkSeaGreen3',
+ \ 'DarkSeaGreen4',
+ \ 'DarkSlateBlue',
+ \ 'DarkSlateGray',
+ \ 'DarkSlateGray1',
+ \ 'DarkSlateGray2',
+ \ 'DarkSlateGray3',
+ \ 'DarkSlateGray4',
+ \ 'DarkSlateGrey',
+ \ 'DarkTurquoise',
+ \ 'DarkViolet',
+ \ 'DeepPink',
+ \ 'DeepPink1',
+ \ 'DeepPink2',
+ \ 'DeepPink3',
+ \ 'DeepPink4',
+ \ 'DeepSkyBlue',
+ \ 'DeepSkyBlue1',
+ \ 'DeepSkyBlue2',
+ \ 'DeepSkyBlue3',
+ \ 'DeepSkyBlue4',
+ \ 'DimGray',
+ \ 'DimGrey',
+ \ 'DodgerBlue',
+ \ 'DodgerBlue1',
+ \ 'DodgerBlue2',
+ \ 'DodgerBlue3',
+ \ 'DodgerBlue4',
+ \ 'FloralWhite',
+ \ 'ForestGreen',
+ \ 'GhostWhite',
+ \ 'GreenYellow',
+ \ 'HotPink',
+ \ 'HotPink1',
+ \ 'HotPink2',
+ \ 'HotPink3',
+ \ 'HotPink4',
+ \ 'IndianRed',
+ \ 'IndianRed1',
+ \ 'IndianRed2',
+ \ 'IndianRed3',
+ \ 'IndianRed4',
+ \ 'LavenderBlush',
+ \ 'LavenderBlush1',
+ \ 'LavenderBlush2',
+ \ 'LavenderBlush3',
+ \ 'LavenderBlush4',
+ \ 'LawnGreen',
+ \ 'LemonChiffon',
+ \ 'LemonChiffon1',
+ \ 'LemonChiffon2',
+ \ 'LemonChiffon3',
+ \ 'LemonChiffon4',
+ \ 'LightBlue',
+ \ 'LightBlue1',
+ \ 'LightBlue2',
+ \ 'LightBlue3',
+ \ 'LightBlue4',
+ \ 'LightCoral',
+ \ 'LightCyan',
+ \ 'LightCyan1',
+ \ 'LightCyan2',
+ \ 'LightCyan3',
+ \ 'LightCyan4',
+ \ 'LightGoldenrod',
+ \ 'LightGoldenrod1',
+ \ 'LightGoldenrod2',
+ \ 'LightGoldenrod3',
+ \ 'LightGoldenrod4',
+ \ 'LightGoldenrodYellow',
+ \ 'LightGray',
+ \ 'LightGreen',
+ \ 'LightGrey',
+ \ 'LightPink',
+ \ 'LightPink1',
+ \ 'LightPink2',
+ \ 'LightPink3',
+ \ 'LightPink4',
+ \ 'LightSalmon',
+ \ 'LightSalmon1',
+ \ 'LightSalmon2',
+ \ 'LightSalmon3',
+ \ 'LightSalmon4',
+ \ 'LightSeaGreen',
+ \ 'LightSkyBlue',
+ \ 'LightSkyBlue1',
+ \ 'LightSkyBlue2',
+ \ 'LightSkyBlue3',
+ \ 'LightSkyBlue4',
+ \ 'LightSlateBlue',
+ \ 'LightSlateGray',
+ \ 'LightSlateGrey',
+ \ 'LightSteelBlue',
+ \ 'LightSteelBlue1',
+ \ 'LightSteelBlue2',
+ \ 'LightSteelBlue3',
+ \ 'LightSteelBlue4',
+ \ 'LightYellow',
+ \ 'LightYellow1',
+ \ 'LightYellow2',
+ \ 'LightYellow3',
+ \ 'LightYellow4',
+ \ 'LimeGreen',
+ \ 'MediumAquamarine',
+ \ 'MediumBlue',
+ \ 'MediumOrchid',
+ \ 'MediumOrchid1',
+ \ 'MediumOrchid2',
+ \ 'MediumOrchid3',
+ \ 'MediumOrchid4',
+ \ 'MediumPurple',
+ \ 'MediumPurple1',
+ \ 'MediumPurple2',
+ \ 'MediumPurple3',
+ \ 'MediumPurple4',
+ \ 'MediumSeaGreen',
+ \ 'MediumSlateBlue',
+ \ 'MediumSpringGreen',
+ \ 'MediumTurquoise',
+ \ 'MediumVioletRed',
+ \ 'MidnightBlue',
+ \ 'MintCream',
+ \ 'MistyRose',
+ \ 'MistyRose1',
+ \ 'MistyRose2',
+ \ 'MistyRose3',
+ \ 'MistyRose4',
+ \ 'NavajoWhite',
+ \ 'NavajoWhite1',
+ \ 'NavajoWhite2',
+ \ 'NavajoWhite3',
+ \ 'NavajoWhite4',
+ \ 'NavyBlue',
+ \ 'OldLace',
+ \ 'OliveDrab',
+ \ 'OliveDrab1',
+ \ 'OliveDrab2',
+ \ 'OliveDrab3',
+ \ 'OliveDrab4',
+ \ 'OrangeRed',
+ \ 'OrangeRed1',
+ \ 'OrangeRed2',
+ \ 'OrangeRed3',
+ \ 'OrangeRed4',
+ \ 'PaleGoldenrod',
+ \ 'PaleGreen',
+ \ 'PaleGreen1',
+ \ 'PaleGreen2',
+ \ 'PaleGreen3',
+ \ 'PaleGreen4',
+ \ 'PaleTurquoise',
+ \ 'PaleTurquoise1',
+ \ 'PaleTurquoise2',
+ \ 'PaleTurquoise3',
+ \ 'PaleTurquoise4',
+ \ 'PaleVioletRed',
+ \ 'PaleVioletRed1',
+ \ 'PaleVioletRed2',
+ \ 'PaleVioletRed3',
+ \ 'PaleVioletRed4',
+ \ 'PapayaWhip',
+ \ 'PeachPuff',
+ \ 'PeachPuff1',
+ \ 'PeachPuff2',
+ \ 'PeachPuff3',
+ \ 'PeachPuff4',
+ \ 'PowderBlue',
+ \ 'RosyBrown',
+ \ 'RosyBrown1',
+ \ 'RosyBrown2',
+ \ 'RosyBrown3',
+ \ 'RosyBrown4',
+ \ 'RoyalBlue',
+ \ 'RoyalBlue1',
+ \ 'RoyalBlue2',
+ \ 'RoyalBlue3',
+ \ 'RoyalBlue4',
+ \ 'SaddleBrown',
+ \ 'SandyBrown',
+ \ 'SeaGreen',
+ \ 'SeaGreen1',
+ \ 'SeaGreen2',
+ \ 'SeaGreen3',
+ \ 'SeaGreen4',
+ \ 'SkyBlue',
+ \ 'SkyBlue1',
+ \ 'SkyBlue2',
+ \ 'SkyBlue3',
+ \ 'SkyBlue4',
+ \ 'SlateBlue',
+ \ 'SlateBlue1',
+ \ 'SlateBlue2',
+ \ 'SlateBlue3',
+ \ 'SlateBlue4',
+ \ 'SlateGray',
+ \ 'SlateGray1',
+ \ 'SlateGray2',
+ \ 'SlateGray3',
+ \ 'SlateGray4',
+ \ 'SlateGrey',
+ \ 'SpringGreen',
+ \ 'SpringGreen1',
+ \ 'SpringGreen2',
+ \ 'SpringGreen3',
+ \ 'SpringGreen4',
+ \ 'SteelBlue',
+ \ 'SteelBlue1',
+ \ 'SteelBlue2',
+ \ 'SteelBlue3',
+ \ 'SteelBlue4',
+ \ 'VioletRed',
+ \ 'VioletRed1',
+ \ 'VioletRed2',
+ \ 'VioletRed3',
+ \ 'VioletRed4',
+ \ 'WhiteSmoke',
+ \ 'YellowGreen',
+ \ 'alice blue',
+ \ 'antique white',
+ \ 'aquamarine',
+ \ 'aquamarine1',
+ \ 'aquamarine2',
+ \ 'aquamarine3',
+ \ 'aquamarine4',
+ \ 'azure',
+ \ 'azure1',
+ \ 'azure2',
+ \ 'azure3',
+ \ 'azure4',
+ \ 'beige',
+ \ 'bisque',
+ \ 'bisque1',
+ \ 'bisque2',
+ \ 'bisque3',
+ \ 'bisque4',
+ \ 'black',
+ \ 'blanched almond',
+ \ 'blue violet',
+ \ 'blue',
+ \ 'blue1',
+ \ 'blue2',
+ \ 'blue3',
+ \ 'blue4',
+ \ 'brown',
+ \ 'brown1',
+ \ 'brown2',
+ \ 'brown3',
+ \ 'brown4',
+ \ 'burlywood',
+ \ 'burlywood1',
+ \ 'burlywood2',
+ \ 'burlywood3',
+ \ 'burlywood4',
+ \ 'cadet blue',
+ \ 'chartreuse',
+ \ 'chartreuse1',
+ \ 'chartreuse2',
+ \ 'chartreuse3',
+ \ 'chartreuse4',
+ \ 'chocolate',
+ \ 'chocolate1',
+ \ 'chocolate2',
+ \ 'chocolate3',
+ \ 'chocolate4',
+ \ 'coral',
+ \ 'coral1',
+ \ 'coral2',
+ \ 'coral3',
+ \ 'coral4',
+ \ 'cornflower blue',
+ \ 'cornsilk',
+ \ 'cornsilk1',
+ \ 'cornsilk2',
+ \ 'cornsilk3',
+ \ 'cornsilk4',
+ \ 'cyan',
+ \ 'cyan1',
+ \ 'cyan2',
+ \ 'cyan3',
+ \ 'cyan4',
+ \ 'dark blue',
+ \ 'dark cyan',
+ \ 'dark goldenrod',
+ \ 'dark gray',
+ \ 'dark green',
+ \ 'dark grey',
+ \ 'dark khaki',
+ \ 'dark magenta',
+ \ 'dark olive green',
+ \ 'dark orange',
+ \ 'dark orchid',
+ \ 'dark red',
+ \ 'dark salmon',
+ \ 'dark sea green',
+ \ 'dark slate blue',
+ \ 'dark slate gray',
+ \ 'dark slate grey',
+ \ 'dark turquoise',
+ \ 'dark violet',
+ \ 'darkblue',
+ \ 'darkcyan',
+ \ 'darkgray',
+ \ 'darkgreen',
+ \ 'darkgrey',
+ \ 'darkmagenta',
+ \ 'darkred',
+ \ 'darkyellow',
+ \ 'deep pink',
+ \ 'deep sky blue',
+ \ 'dim gray',
+ \ 'dim grey',
+ \ 'dodger blue',
+ \ 'firebrick',
+ \ 'firebrick1',
+ \ 'firebrick2',
+ \ 'firebrick3',
+ \ 'firebrick4',
+ \ 'floral white',
+ \ 'forest green',
+ \ 'gainsboro',
+ \ 'ghost white',
+ \ 'gold',
+ \ 'gold1',
+ \ 'gold2',
+ \ 'gold3',
+ \ 'gold4',
+ \ 'goldenrod',
+ \ 'goldenrod1',
+ \ 'goldenrod2',
+ \ 'goldenrod3',
+ \ 'goldenrod4',
+ \ 'gray',
+ \ 'gray0',
+ \ 'gray1',
+ \ 'gray10',
+ \ 'gray100',
+ \ 'gray11',
+ \ 'gray12',
+ \ 'gray13',
+ \ 'gray14',
+ \ 'gray15',
+ \ 'gray16',
+ \ 'gray17',
+ \ 'gray18',
+ \ 'gray19',
+ \ 'gray2',
+ \ 'gray20',
+ \ 'gray21',
+ \ 'gray22',
+ \ 'gray23',
+ \ 'gray24',
+ \ 'gray25',
+ \ 'gray26',
+ \ 'gray27',
+ \ 'gray28',
+ \ 'gray29',
+ \ 'gray3',
+ \ 'gray30',
+ \ 'gray31',
+ \ 'gray32',
+ \ 'gray33',
+ \ 'gray34',
+ \ 'gray35',
+ \ 'gray36',
+ \ 'gray37',
+ \ 'gray38',
+ \ 'gray39',
+ \ 'gray4',
+ \ 'gray40',
+ \ 'gray41',
+ \ 'gray42',
+ \ 'gray43',
+ \ 'gray44',
+ \ 'gray45',
+ \ 'gray46',
+ \ 'gray47',
+ \ 'gray48',
+ \ 'gray49',
+ \ 'gray5',
+ \ 'gray50',
+ \ 'gray51',
+ \ 'gray52',
+ \ 'gray53',
+ \ 'gray54',
+ \ 'gray55',
+ \ 'gray56',
+ \ 'gray57',
+ \ 'gray58',
+ \ 'gray59',
+ \ 'gray6',
+ \ 'gray60',
+ \ 'gray61',
+ \ 'gray62',
+ \ 'gray63',
+ \ 'gray64',
+ \ 'gray65',
+ \ 'gray66',
+ \ 'gray67',
+ \ 'gray68',
+ \ 'gray69',
+ \ 'gray7',
+ \ 'gray70',
+ \ 'gray71',
+ \ 'gray72',
+ \ 'gray73',
+ \ 'gray74',
+ \ 'gray75',
+ \ 'gray76',
+ \ 'gray77',
+ \ 'gray78',
+ \ 'gray79',
+ \ 'gray8',
+ \ 'gray80',
+ \ 'gray81',
+ \ 'gray82',
+ \ 'gray83',
+ \ 'gray84',
+ \ 'gray85',
+ \ 'gray86',
+ \ 'gray87',
+ \ 'gray88',
+ \ 'gray89',
+ \ 'gray9',
+ \ 'gray90',
+ \ 'gray91',
+ \ 'gray92',
+ \ 'gray93',
+ \ 'gray94',
+ \ 'gray95',
+ \ 'gray96',
+ \ 'gray97',
+ \ 'gray98',
+ \ 'gray99',
+ \ 'green yellow',
+ \ 'green',
+ \ 'green1',
+ \ 'green2',
+ \ 'green3',
+ \ 'green4',
+ \ 'grey',
+ \ 'grey0',
+ \ 'grey1',
+ \ 'grey10',
+ \ 'grey100',
+ \ 'grey11',
+ \ 'grey12',
+ \ 'grey13',
+ \ 'grey14',
+ \ 'grey15',
+ \ 'grey16',
+ \ 'grey17',
+ \ 'grey18',
+ \ 'grey19',
+ \ 'grey2',
+ \ 'grey20',
+ \ 'grey21',
+ \ 'grey22',
+ \ 'grey23',
+ \ 'grey24',
+ \ 'grey25',
+ \ 'grey26',
+ \ 'grey27',
+ \ 'grey28',
+ \ 'grey29',
+ \ 'grey3',
+ \ 'grey30',
+ \ 'grey31',
+ \ 'grey32',
+ \ 'grey33',
+ \ 'grey34',
+ \ 'grey35',
+ \ 'grey36',
+ \ 'grey37',
+ \ 'grey38',
+ \ 'grey39',
+ \ 'grey4',
+ \ 'grey40',
+ \ 'grey41',
+ \ 'grey42',
+ \ 'grey43',
+ \ 'grey44',
+ \ 'grey45',
+ \ 'grey46',
+ \ 'grey47',
+ \ 'grey48',
+ \ 'grey49',
+ \ 'grey5',
+ \ 'grey50',
+ \ 'grey51',
+ \ 'grey52',
+ \ 'grey53',
+ \ 'grey54',
+ \ 'grey55',
+ \ 'grey56',
+ \ 'grey57',
+ \ 'grey58',
+ \ 'grey59',
+ \ 'grey6',
+ \ 'grey60',
+ \ 'grey61',
+ \ 'grey62',
+ \ 'grey63',
+ \ 'grey64',
+ \ 'grey65',
+ \ 'grey66',
+ \ 'grey67',
+ \ 'grey68',
+ \ 'grey69',
+ \ 'grey7',
+ \ 'grey70',
+ \ 'grey71',
+ \ 'grey72',
+ \ 'grey73',
+ \ 'grey74',
+ \ 'grey75',
+ \ 'grey76',
+ \ 'grey77',
+ \ 'grey78',
+ \ 'grey79',
+ \ 'grey8',
+ \ 'grey80',
+ \ 'grey81',
+ \ 'grey82',
+ \ 'grey83',
+ \ 'grey84',
+ \ 'grey85',
+ \ 'grey86',
+ \ 'grey87',
+ \ 'grey88',
+ \ 'grey89',
+ \ 'grey9',
+ \ 'grey90',
+ \ 'grey91',
+ \ 'grey92',
+ \ 'grey93',
+ \ 'grey94',
+ \ 'grey95',
+ \ 'grey96',
+ \ 'grey97',
+ \ 'grey98',
+ \ 'grey99',
+ \ 'honeydew',
+ \ 'honeydew1',
+ \ 'honeydew2',
+ \ 'honeydew3',
+ \ 'honeydew4',
+ \ 'hot pink',
+ \ 'indian red',
+ \ 'ivory',
+ \ 'ivory1',
+ \ 'ivory2',
+ \ 'ivory3',
+ \ 'ivory4',
+ \ 'khaki',
+ \ 'khaki1',
+ \ 'khaki2',
+ \ 'khaki3',
+ \ 'khaki4',
+ \ 'lavender blush',
+ \ 'lavender',
+ \ 'lawn green',
+ \ 'lemon chiffon',
+ \ 'light blue',
+ \ 'light coral',
+ \ 'light cyan',
+ \ 'light goldenrod yellow',
+ \ 'light goldenrod',
+ \ 'light gray',
+ \ 'light green',
+ \ 'light grey',
+ \ 'light pink',
+ \ 'light salmon',
+ \ 'light sea green',
+ \ 'light sky blue',
+ \ 'light slate blue',
+ \ 'light slate gray',
+ \ 'light slate grey',
+ \ 'light steel blue',
+ \ 'light yellow',
+ \ 'lightblue',
+ \ 'lightcyan',
+ \ 'lightgray',
+ \ 'lightgreen',
+ \ 'lightgrey',
+ \ 'lightmagenta',
+ \ 'lightred',
+ \ 'lightyellow',
+ \ 'lime green',
+ \ 'linen',
+ \ 'magenta',
+ \ 'magenta1',
+ \ 'magenta2',
+ \ 'magenta3',
+ \ 'magenta4',
+ \ 'maroon',
+ \ 'maroon1',
+ \ 'maroon2',
+ \ 'maroon3',
+ \ 'maroon4',
+ \ 'medium aquamarine',
+ \ 'medium blue',
+ \ 'medium orchid',
+ \ 'medium purple',
+ \ 'medium sea green',
+ \ 'medium slate blue',
+ \ 'medium spring green',
+ \ 'medium turquoise',
+ \ 'medium violet red',
+ \ 'midnight blue',
+ \ 'mint cream',
+ \ 'misty rose',
+ \ 'moccasin',
+ \ 'navajo white',
+ \ 'navy blue',
+ \ 'navy',
+ \ 'old lace',
+ \ 'olive drab',
+ \ 'orange red',
+ \ 'orange',
+ \ 'orange1',
+ \ 'orange2',
+ \ 'orange3',
+ \ 'orange4',
+ \ 'orchid',
+ \ 'orchid1',
+ \ 'orchid2',
+ \ 'orchid3',
+ \ 'orchid4',
+ \ 'pale goldenrod',
+ \ 'pale green',
+ \ 'pale turquoise',
+ \ 'pale violet red',
+ \ 'papaya whip',
+ \ 'peach puff',
+ \ 'peru',
+ \ 'pink',
+ \ 'pink1',
+ \ 'pink2',
+ \ 'pink3',
+ \ 'pink4',
+ \ 'plum',
+ \ 'plum1',
+ \ 'plum2',
+ \ 'plum3',
+ \ 'plum4',
+ \ 'powder blue',
+ \ 'purple',
+ \ 'purple1',
+ \ 'purple2',
+ \ 'purple3',
+ \ 'purple4',
+ \ 'red',
+ \ 'red1',
+ \ 'red2',
+ \ 'red3',
+ \ 'red4',
+ \ 'rosy brown',
+ \ 'royal blue',
+ \ 'saddle brown',
+ \ 'salmon',
+ \ 'salmon1',
+ \ 'salmon2',
+ \ 'salmon3',
+ \ 'salmon4',
+ \ 'sandy brown',
+ \ 'sea green',
+ \ 'seagreen',
+ \ 'seashell',
+ \ 'seashell1',
+ \ 'seashell2',
+ \ 'seashell3',
+ \ 'seashell4',
+ \ 'sienna',
+ \ 'sienna1',
+ \ 'sienna2',
+ \ 'sienna3',
+ \ 'sienna4',
+ \ 'sky blue',
+ \ 'slate blue',
+ \ 'slate gray',
+ \ 'slate grey',
+ \ 'slateblue',
+ \ 'snow',
+ \ 'snow1',
+ \ 'snow2',
+ \ 'snow3',
+ \ 'snow4',
+ \ 'spring green',
+ \ 'steel blue',
+ \ 'tan',
+ \ 'tan1',
+ \ 'tan2',
+ \ 'tan3',
+ \ 'tan4',
+ \ 'thistle',
+ \ 'thistle1',
+ \ 'thistle2',
+ \ 'thistle3',
+ \ 'thistle4',
+ \ 'tomato',
+ \ 'tomato1',
+ \ 'tomato2',
+ \ 'tomato3',
+ \ 'tomato4',
+ \ 'turquoise',
+ \ 'turquoise1',
+ \ 'turquoise2',
+ \ 'turquoise3',
+ \ 'turquoise4',
+ \ 'violet red',
+ \ 'violet',
+ \ 'wheat',
+ \ 'wheat1',
+ \ 'wheat2',
+ \ 'wheat3',
+ \ 'wheat4',
+ \ 'white smoke',
+ \ 'white',
+ \ 'yellow green',
+ \ 'yellow',
+ \ 'yellow1',
+ \ 'yellow2',
+ \ 'yellow3',
+ \ 'yellow4',
+ \ ]
+ for color in colors
+ " just test that the color name can be found.
+ exe "hi Mine guifg='" . color . "'"
+ endfor
+
+ " case is ignored
+ hi Mine guifg=blanchedalmond
+ hi Mine guifg=BLANCHEDALMOND
+endfunc
diff --git a/src/version.c b/src/version.c
index a7b65c8f0..fe86982ea 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2073,
+/**/
2072,
/**/
2071,