summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2022-02-14 17:25:04 +0000
committerPádraig Brady <P@draigBrady.com>2022-02-15 17:01:19 +0000
commit041dfff5db1f09c92435e46b65931b04364c37f6 (patch)
tree498d57828744685616636c4b6ae3b8e3629c4812
parent75c9fc6740e93dba95f63a1e5e92bd5cf17f1743 (diff)
downloadcoreutils-041dfff5db1f09c92435e46b65931b04364c37f6.tar.gz
dircolors: speed up processing of TERM entries
* src/dircolors.c (main): Avoid glob matching when we've already matched in a group of {COLOR,}TERM entries.
-rw-r--r--src/dircolors.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/dircolors.c b/src/dircolors.c
index 5c9229962..f8e2f549f 100644
--- a/src/dircolors.c
+++ b/src/dircolors.c
@@ -328,17 +328,13 @@ dc_parse_stream (FILE *fp, char const *filename)
unrecognized = false;
if (c_strcasecmp (keywd, "TERM") == 0)
{
- if (fnmatch (arg, term, 0) == 0)
- state = ST_TERMSURE;
- else if (state != ST_TERMSURE)
- state = ST_TERMNO;
+ if (state != ST_TERMSURE)
+ state = fnmatch (arg, term, 0) == 0 ? ST_TERMSURE : ST_TERMNO;
}
else if (c_strcasecmp (keywd, "COLORTERM") == 0)
{
- if (fnmatch (arg, colorterm, 0) == 0)
- state = ST_TERMSURE;
- else if (state != ST_TERMSURE)
- state = ST_TERMNO;
+ if (state != ST_TERMSURE)
+ state = fnmatch (arg, colorterm, 0) == 0 ? ST_TERMSURE : ST_TERMNO;
}
else
{