summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Todoroff <nd.todoroff@gmail.com>2023-08-02 17:16:35 -0600
committerNicholas Todoroff <nd.todoroff@gmail.com>2023-08-02 17:16:35 -0600
commit655ed9cb245bfddb79a22b3fa155eba293a2bc5f (patch)
treeb8fd9374fad791a63695ea0335fc446f1c482714
parente006ab13eea45c06ec22d01e3bd72aa8b53a777f (diff)
Properly handle NONE_COLOR as described in :help
* Adds entry for NONE_COLOR in set_colors_param_dict() * Makes chg_color() not error nor change the color when fg or bg is "NONE_COLOR"
-rw-r--r--src/color.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/color.c b/src/color.c
index c8aeedb..49ea6ee 100644
--- a/src/color.c
+++ b/src/color.c
@@ -186,6 +186,8 @@ void set_colors_param_dict() {
sprintf(str, "%d", DEFAULT_COLOR);
put(d_colors_param, "DEFAULT_COLOR", str);
+ sprintf(str, "%d", NONE_COLOR);
+ put(d_colors_param, "NONE_COLOR", str);
sprintf(str, "%d", BLACK);
put(d_colors_param, "BLACK", str);
sprintf(str, "%d", RED);
@@ -333,13 +335,17 @@ void chg_color(char * str) {
// Change the color
int type = get_int(d_colors_param, get(d, "type"));
struct custom_color * cc;
- if ((cc = get_custom_color(get(d, "bg"))) != NULL) { // bg is custom color
+ if (get_int(d_colors_param, get(d, "bg")) == NONE_COLOR) {
+ // Don't change anything
+ } else if ((cc = get_custom_color(get(d, "bg"))) != NULL) { // bg is custom color
ucolors[ type ].bg = 7 + cc->number;
} else { // bg is stock ncurses color
ucolors[ type ].bg = get_int(d_colors_param, get(d, "bg"));
}
- if ((cc = get_custom_color(get(d, "fg"))) != NULL) { // fg is custom color
+ if (get_int(d_colors_param, get(d, "fg")) == NONE_COLOR) {
+ // Don't change anything
+ } else if ((cc = get_custom_color(get(d, "fg"))) != NULL) { // fg is custom color
ucolors[ type ].fg = 7 + cc->number;
} else { // fg is stock ncurses color
ucolors[ type ].fg = get_int(d_colors_param, get(d, "fg"));