diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2007-10-12 13:51:44 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2007-10-12 13:51:44 +0000 |
commit | 514d6fa1ec60563318c67806334c3b8d97c95b02 (patch) | |
tree | 9cef972ede33ea4639442b467753720f49f650ab /screen.c | |
parent | f3404ee9229ae3acab973b93ca7a20eddd593c7f (diff) | |
download | rtmux-514d6fa1ec60563318c67806334c3b8d97c95b02.tar.gz rtmux-514d6fa1ec60563318c67806334c3b8d97c95b02.tar.bz2 rtmux-514d6fa1ec60563318c67806334c3b8d97c95b02.zip |
Accept colours as strings.
Diffstat (limited to 'screen.c')
-rw-r--r-- | screen.c | 54 |
1 files changed, 53 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $Id: screen.c,v 1.22 2007-10-05 17:51:56 nicm Exp $ */ +/* $Id: screen.c,v 1.23 2007-10-12 13:51:44 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -43,6 +43,58 @@ void screen_fill_lines( #define screen_offset_y(py, ny) ((py) + (ny) - 1) #define screen_offset_x(px, nx) ((px) + (nx) - 1) +/* Colour to string. */ +const char * +screen_colourstring(u_char c) +{ + switch (c) { + case 0: + return ("black"); + case 1: + return ("red"); + case 2: + return ("green"); + case 3: + return ("yellow"); + case 4: + return ("blue"); + case 5: + return ("magenta"); + case 6: + return ("cyan"); + case 7: + return ("white"); + case 8: + return ("default"); + } + return (NULL); +} + +/* String to colour. */ +u_char +screen_stringcolour(const char *s) +{ + if (strcasecmp(s, "black") == 0 || (s[0] == '0' && s[1] == '\0')) + return (0); + if (strcasecmp(s, "red") == 0 || (s[0] == '1' && s[1] == '\0')) + return (1); + if (strcasecmp(s, "green") == 0 || (s[0] == '2' && s[1] == '\0')) + return (2); + if (strcasecmp(s, "yellow") == 0 || (s[0] == '3' && s[1] == '\0')) + return (3); + if (strcasecmp(s, "blue") == 0 || (s[0] == '4' && s[1] == '\0')) + return (4); + if (strcasecmp(s, "magenta") == 0 || (s[0] == '5' && s[1] == '\0')) + return (5); + if (strcasecmp(s, "cyan") == 0 || (s[0] == '6' && s[1] == '\0')) + return (6); + if (strcasecmp(s, "white") == 0 || (s[0] == '7' && s[1] == '\0')) + return (7); + if (strcasecmp(s, "default") == 0 || (s[0] == '8' && s[1] == '\0')) + return (8); + return (255); +} + /* Create a new screen. */ void screen_create(struct screen *s, u_int sx, u_int sy) |