diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-10-07 17:44:32 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-10-07 17:44:32 +0000 |
commit | c77eb286d693d779becb8264e0d9fa604b7ff4f4 (patch) | |
tree | 18796430ec89aba5174c79a325412b15fb857eae /main/term.c | |
parent | 548e63ae1f6cace630daa1d9af300f07a2eb17f2 (diff) |
Allow people to select the old console behavior of white text on a black
background, by using the startup flag '-B'.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@147262 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/term.c')
-rw-r--r-- | main/term.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/main/term.c b/main/term.c index d17ea56f6..d12135f24 100644 --- a/main/term.c +++ b/main/term.c @@ -152,6 +152,10 @@ int ast_term_init(void) snprintf(prepdata, sizeof(prepdata), "%c[%dm", ESC, COLOR_BROWN); snprintf(enddata, sizeof(enddata), "%c[%dm", ESC, COLOR_BLACK); snprintf(quitdata, sizeof(quitdata), "%c[0m", ESC); + } else if (ast_opt_force_black_background) { + snprintf(prepdata, sizeof(prepdata), "%c[%d;%d;%dm", ESC, ATTR_BRIGHT, COLOR_BROWN, COLOR_BLACK + 10); + snprintf(enddata, sizeof(enddata), "%c[%d;%d;%dm", ESC, ATTR_RESET, COLOR_WHITE, COLOR_BLACK + 10); + snprintf(quitdata, sizeof(quitdata), "%c[0m", ESC); } else { snprintf(prepdata, sizeof(prepdata), "%c[%d;%dm", ESC, ATTR_BRIGHT, COLOR_BROWN); snprintf(enddata, sizeof(enddata), "%c[%d;%dm", ESC, ATTR_RESET, COLOR_WHITE); @@ -179,11 +183,19 @@ char *term_color(char *outbuf, const char *inbuf, int fgcolor, int bgcolor, int fgcolor &= ~128; } + if (bgcolor) { + bgcolor &= ~128; + } + if (ast_opt_light_background) { fgcolor = opposite(fgcolor); } - snprintf(outbuf, maxout, "%c[%d;%dm%s%c[0m", ESC, attr, fgcolor, inbuf, ESC); + if (ast_opt_force_black_background) { + snprintf(outbuf, maxout, "%c[%d;%d;%dm%s%c[%d;%dm", ESC, attr, fgcolor, bgcolor + 10, inbuf, ESC, COLOR_WHITE, COLOR_BLACK + 10); + } else { + snprintf(outbuf, maxout, "%c[%d;%dm%s%c[0m", ESC, attr, fgcolor, inbuf, ESC); + } return outbuf; } @@ -204,7 +216,15 @@ char *term_color_code(char *outbuf, int fgcolor, int bgcolor, int maxout) fgcolor = opposite(fgcolor); } - snprintf(outbuf, maxout, "%c[%d;%dm", ESC, attr, fgcolor); + if (bgcolor) { + bgcolor &= ~128; + } + + if (ast_opt_force_black_background) { + snprintf(outbuf, maxout, "%c[%d;%d;%dm", ESC, attr, fgcolor, bgcolor + 10); + } else { + snprintf(outbuf, maxout, "%c[%d;%dm", ESC, attr, fgcolor); + } return outbuf; } @@ -235,7 +255,13 @@ char *term_prompt(char *outbuf, const char *inbuf, int maxout) ast_copy_string(outbuf, inbuf, maxout); return outbuf; } - if (ast_opt_light_background) { + if (ast_opt_force_black_background) { + snprintf(outbuf, maxout, "%c[%d;%dm%c%c[%d;%dm%s", + ESC, COLOR_BLUE, COLOR_BLACK + 10, + inbuf[0], + ESC, COLOR_WHITE, COLOR_BLACK + 10, + inbuf + 1); + } else if (ast_opt_light_background) { snprintf(outbuf, maxout, "%c[%d;0m%c%c[%d;0m%s", ESC, COLOR_BLUE, inbuf[0], |