diff --git a/src/terminal/named-colors.c b/src/terminal/named-colors.c index b0e579b6..ab94153e 100644 --- a/src/terminal/named-colors.c +++ b/src/terminal/named-colors.c @@ -761,8 +761,13 @@ static int guac_terminal_named_color_search(const void* a, const void* b) { /* Skip any spaces in key (name will never have spaces) */ while (*key && isspace(*key)) key++; + /* Treat semi-colon as string terminator, to support parsing color + names within a larger string (e.g. within the terminal color-scheme + configuration string). */ + const int keyChar = (*key == ';') ? '\0' : tolower(*key); + /* Compare, ignoring case (name is already known to be lowercase) */ - int difference = tolower(*key) - *name; + int difference = keyChar - *name; if (difference) return difference;