int set_default_colors() /* {{{ */ { /* create initial color rules */ add_color_rule(OBJECT_HEADER, NULL, COLOR_BLUE, COLOR_BLACK); add_color_rule(OBJECT_TASK, NULL, -1, -1); add_color_rule(OBJECT_TASK, "~s", COLOR_CYAN, COLOR_BLACK); add_color_rule(OBJECT_ERROR, NULL, COLOR_RED, -1); return 0; } /* }}} */
void run_command_color(char *args) /* {{{ */ { /** * create/modify a color rule * syntax: object foreground background [rule] */ char *object = NULL, *fg = NULL, *bg = NULL, *rule = NULL; color_object obj; int ret = 0, fgc, bgc; if (args != NULL) ret = sscanf(args, "%ms %m[a-z0-9-] %m[a-z0-9-] %m[^\n]", &object, &fg, &bg, &rule); if (ret < 3) { statusbar_message(cfg.statusbar_timeout, "syntax: color <object> <foreground> <background> <rule>"); tnc_fprintf(logfp, LOG_ERROR, "syntax: color <object> <foreground> <background> <rule> [%d](%s)", ret, args); goto cleanup; } /* parse object */ obj = parse_object(object); if (obj == OBJECT_NONE) { statusbar_message(cfg.statusbar_timeout, "color: invalid object \"%s\"", object); tnc_fprintf(logfp, LOG_ERROR, "color: invalid object \"%s\"", object); goto cleanup; } /* parse colors */ fgc = parse_color(fg); bgc = parse_color(bg); if (bgc < -2 || fgc < -2) { statusbar_message(cfg.statusbar_timeout, "color: invalid colors \"%s\" \"%s\"", fg, bg); tnc_fprintf(logfp, LOG_ERROR, "color: invalid colors %d:\"%s\" %d:\"%s\"", fgc, fg, bgc, bg); goto cleanup; } /* create color rule */ if (add_color_rule(obj, rule, fgc, bgc)>=0) statusbar_message(cfg.statusbar_timeout, "applied color rule"); else statusbar_message(cfg.statusbar_timeout, "applying color rule failed"); goto cleanup; cleanup: check_free(object); check_free(fg); check_free(bg); check_free(rule); } /* }}} */