AST_OPT_FLAG_LIGHT_BACKGROUND = (1 << 25),
/*! Count Initiated seconds in CDR's */
AST_OPT_FLAG_INITIATED_SECONDS = (1 << 26),
+ /*! Force black background */
+ AST_OPT_FLAG_FORCE_BLACK_BACKGROUND = (1 << 27),
};
/*! These are the options that set by default when Asterisk starts */
#define ast_opt_dbg_file ast_test_flag(&ast_options, AST_OPT_FLAG_DEBUG_FILE)
#define ast_opt_verb_file ast_test_flag(&ast_options, AST_OPT_FLAG_VERBOSE_FILE)
#define ast_opt_light_background ast_test_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND)
+#define ast_opt_force_black_background ast_test_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND)
extern struct ast_flags ast_options;
ast_verbose("Invalid Entity ID '%s' provided\n", v->value);
} else if (!strcasecmp(v->name, "lightbackground")) {
ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_LIGHT_BACKGROUND);
+ } else if (!strcasecmp(v->name, "forceblackbackground")) {
+ ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
}
}
for (v = ast_variable_browse(cfg, "compat"); v; v = v->next) {
if (getenv("HOME"))
snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
/* Check for options */
- while ((c = getopt(argc, argv, "mtThfFdvVqprRgciInx:U:G:C:L:M:e:s:W")) != -1) {
+ while ((c = getopt(argc, argv, "mtThfFdvVqprRgciInx:U:G:C:L:M:e:s:WB")) != -1) {
switch (c) {
#if defined(HAVE_SYSINFO)
case 'e':
break;
case 'W': /* White background */
ast_set_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
+ ast_clear_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
+ break;
+ case 'B': /* Force black background */
+ ast_set_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
+ ast_clear_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
break;
case '?':
exit(1);
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);
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;
}
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;
}
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],