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) {

Reply via email to