commit: d37b7f066eb71f453a05dc875ff704c0331a3e81 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Fri Jun 27 13:59:06 2025 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Fri Jun 27 13:59:06 2025 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=d37b7f06
libq/color: use Portage's colour names as accepted keys in addition, support quoting around values Bug: https://bugs.gentoo.org/958487 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> libq/colors.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/libq/colors.c b/libq/colors.c index 18dbaf7..60da399 100644 --- a/libq/colors.c +++ b/libq/colors.c @@ -65,20 +65,20 @@ const char *RED; const char *WHITE; const char *YELLOW; -/* all of the above need to be in the list below */ +/* all of the above need to be referenced in the list below */ static colourpair colour_pairs[] = { - {"norm", _MAKE_COLOUR2(0,0), &NORM, ""}, - {"blue", LQC_TEAL, &BLUE, ""}, - {"bold", _MAKE_COLOUR2(0,1), &BOLD, ""}, - {"bryellow", LQC_BROWN, &BRYELLOW, ""}, - {"cyan", LQC_TURQUOISE, &CYAN, ""}, - {"dkblue", LQC_DARKBLUE, &DKBLUE, ""}, - {"dkgreen", LQC_GREEN, &DKGREEN, ""}, - {"green", LQC_DARKGREEN, &GREEN, ""}, - {"magenta", LQC_FUCHSIA, &MAGENTA, ""}, - {"red", LQC_DARKRED, &RED, ""}, - {"white", _MAKE_COLOUR2(1,38), &WHITE, ""}, - {"yellow", LQC_BROWN, &YELLOW, ""} + {"norm", _MAKE_COLOUR2(0,0), &NORM, ""}, + {"teal", LQC_TEAL, &BLUE, ""}, + {"bold", _MAKE_COLOUR2(0,1), &BOLD, ""}, + {"brown", LQC_BROWN, &BRYELLOW, ""}, + {"turquoise", LQC_TURQUOISE, &CYAN, ""}, + {"darkblue", LQC_DARKBLUE, &DKBLUE, ""}, + {"green", LQC_GREEN, &DKGREEN, ""}, + {"darkgreen", LQC_DARKGREEN, &GREEN, ""}, + {"fuchsia", LQC_FUCHSIA, &MAGENTA, ""}, + {"red", LQC_DARKRED, &RED, ""}, + {"white", _MAKE_COLOUR2(1,38), &WHITE, ""}, + {"yellow", LQC_BROWN, &YELLOW, ""} }; static colourmap colour_map[] = { @@ -162,6 +162,17 @@ color_remap(void) rmspace(buf); rmspace(p); + /* strip off quotes from values */ + linelen = (int)strlen(p); + if (linelen > 1 && + p[0] == p[linelen - 1] && + (p[0] == '\'' || + p[0] == '"')) + { + p[linelen - 1] = '\0'; + p++; + } + for (i = 0; i < ARRAY_SIZE(colour_pairs); i++) { int found = 0; if (strcmp(buf, colour_pairs[i].name) == 0) {
