- if (_stricmp(ColorText, "Black") == 0)
- return COLOR_BLACK;
- else if (_stricmp(ColorText, "Blue") == 0)
- return COLOR_BLUE;
- else if (_stricmp(ColorText, "Green") == 0)
- return COLOR_GREEN;
- else if (_stricmp(ColorText, "Cyan") == 0)
- return COLOR_CYAN;
- else if (_stricmp(ColorText, "Red") == 0)
- return COLOR_RED;
- else if (_stricmp(ColorText, "Magenta") == 0)
- return COLOR_MAGENTA;
- else if (_stricmp(ColorText, "Brown") == 0)
- return COLOR_BROWN;
- else if (_stricmp(ColorText, "Gray") == 0)
- return COLOR_GRAY;
- else if (_stricmp(ColorText, "DarkGray") == 0)
- return COLOR_DARKGRAY;
- else if (_stricmp(ColorText, "LightBlue") == 0)
- return COLOR_LIGHTBLUE;
- else if (_stricmp(ColorText, "LightGreen") == 0)
- return COLOR_LIGHTGREEN;
- else if (_stricmp(ColorText, "LightCyan") == 0)
- return COLOR_LIGHTCYAN;
- else if (_stricmp(ColorText, "LightRed") == 0)
- return COLOR_LIGHTRED;
- else if (_stricmp(ColorText, "LightMagenta") == 0)
- return COLOR_LIGHTMAGENTA;
- else if (_stricmp(ColorText, "Yellow") == 0)
- return COLOR_YELLOW;
- else if (_stricmp(ColorText, "White") == 0)
- return COLOR_WHITE;
+ static const struct
+ {
+ PCSTR ColorName;
+ UCHAR ColorValue;
+ } Colors[] =
+ {
+ {"Black" , COLOR_BLACK },
+ {"Blue" , COLOR_BLUE },
+ {"Green" , COLOR_GREEN },
+ {"Cyan" , COLOR_CYAN },
+ {"Red" , COLOR_RED },
+ {"Magenta", COLOR_MAGENTA},
+ {"Brown" , COLOR_BROWN },
+ {"Gray" , COLOR_GRAY },
+ {"DarkGray" , COLOR_DARKGRAY },
+ {"LightBlue" , COLOR_LIGHTBLUE },
+ {"LightGreen" , COLOR_LIGHTGREEN },
+ {"LightCyan" , COLOR_LIGHTCYAN },
+ {"LightRed" , COLOR_LIGHTRED },
+ {"LightMagenta", COLOR_LIGHTMAGENTA},
+ {"Yellow" , COLOR_YELLOW },
+ {"White" , COLOR_WHITE },
+ };
+ ULONG i;
+
+ for (i = 0; i < sizeof(Colors)/sizeof(Colors[0]); ++i)
+ {
+ if (_stricmp(ColorText, Colors[i].ColorName) == 0)
+ return Colors[i].ColorValue;
+ }