cli: refactor resolve_color_alias() to use binary search
This commit is contained in:
@@ -486,35 +486,34 @@ check_colors(NmcColorOption color_option, char **out_palette_str)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *
|
static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE(
|
||||||
resolve_color_alias(const char *color)
|
_resolve_color_alias,
|
||||||
{
|
const char *,
|
||||||
static const struct {
|
{ nm_assert(name); },
|
||||||
const char *name;
|
{ return NULL; },
|
||||||
const char *alias;
|
{"black", "30"},
|
||||||
} aliases[] = {
|
{"blink", "5"},
|
||||||
{"reset", "0"}, {"bold", "1"}, {"white", "1;37"},
|
{"blue", "34"},
|
||||||
{"halfbright", "2"}, {"underscore", "4"}, {"blink", "5"},
|
{"bold", "1"},
|
||||||
{"reverse", "7"}, {"black", "30"}, {"red", "31"},
|
{"brown", "33"},
|
||||||
{"green", "32"}, {"brown", "33"}, {"yellow", "33"}, /* well, yellow */
|
{"cyan", "36"},
|
||||||
{"blue", "34"}, {"magenta", "35"}, {"cyan", "36"},
|
{"darkgray", "90"},
|
||||||
{"gray", "37"}, {"darkgray", "90"}, {"lightred", "91"},
|
{"gray", "37"},
|
||||||
{"lightgreen", "92"}, {"lightblue", "94"}, {"lightmagenta", "95"},
|
{"green", "32"},
|
||||||
{"lightcyan", "96"}, {"lightgray", "97"},
|
{"halfbright", "2"},
|
||||||
};
|
{"lightblue", "94"},
|
||||||
int i;
|
{"lightcyan", "96"},
|
||||||
|
{"lightgray", "97"},
|
||||||
/* Shortcut literal sequences. */
|
{"lightgreen", "92"},
|
||||||
if (g_ascii_isdigit(*color))
|
{"lightmagenta", "95"},
|
||||||
return color;
|
{"lightred", "91"},
|
||||||
|
{"magenta", "35"},
|
||||||
for (i = 0; i < G_N_ELEMENTS(aliases); i++) {
|
{"red", "31"},
|
||||||
if (strcmp(color, aliases[i].name) == 0)
|
{"reset", "0"},
|
||||||
return aliases[i].alias;
|
{"reverse", "7"},
|
||||||
}
|
{"underscore", "4"},
|
||||||
|
{"white", "1;37"},
|
||||||
return color;
|
{"yellow", "33" /* well, yellow */}, );
|
||||||
}
|
|
||||||
|
|
||||||
static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE(
|
static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE(
|
||||||
_nm_meta_color_from_name,
|
_nm_meta_color_from_name,
|
||||||
@@ -648,7 +647,7 @@ parse_color_scheme(char * palette_buffer,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp_palette[name_idx] = resolve_color_alias(color);
|
tmp_palette[name_idx] = _resolve_color_alias(color) ?: color;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(palette, tmp_palette, sizeof(tmp_palette));
|
memcpy(palette, tmp_palette, sizeof(tmp_palette));
|
||||||
|
Reference in New Issue
Block a user