diff options
Diffstat (limited to 'test/color_name.h')
-rw-r--r-- | test/color_name.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/test/color_name.h b/test/color_name.h new file mode 100644 index 000000000000..81a3b3125759 --- /dev/null +++ b/test/color_name.h @@ -0,0 +1,103 @@ +/**************************************************************************** + * Copyright (c) 2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ +/* + * $Id: color_name.h,v 1.4 2012/11/18 01:59:32 tom Exp $ + */ + +#ifndef __COLORNAME_H +#define __COLORNAME_H 1 + +#ifndef __TEST_PRIV_H +#include <test.priv.h> +#endif + +static NCURSES_CONST char *the_color_names[] = +{ + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white", + "BLACK", + "RED", + "GREEN", + "YELLOW", + "BLUE", + "MAGENTA", + "CYAN", + "WHITE" +}; + +#ifdef NEED_COLOR_CODE +static int +color_code(const char *color) +{ + int result = 0; + char *endp = 0; + size_t n; + + if ((result = (int) strtol(color, &endp, 0)) >= 0 + && (endp == 0 || *endp == 0)) { + ; + } else if (!strcmp(color, "default")) { + result = -1; + } else { + for (n = 0; n < SIZEOF(the_color_names); ++n) { + if (!strcmp(the_color_names[n], color)) { + result = (int) n; + break; + } + } + } + return result; +} +#endif /* NEED_COLOR_NAME */ + +#ifdef NEED_COLOR_NAME +static const char * +color_name(int color) +{ + static char temp[20]; + const char *result = 0; + + if (color >= (int) SIZEOF(the_color_names)) { + sprintf(temp, "%d", color); + result = temp; + } else if (color < 0) { + result = "default"; + } else { + result = the_color_names[color]; + } + return result; +} +#endif /* NEED_COLOR_NAME */ + +#endif /* __COLORNAME_H */ |