diff options
author | Pádraig Brady <P@draigBrady.com> | 2022-02-14 17:25:04 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2022-02-15 17:01:19 +0000 |
commit | 041dfff5db1f09c92435e46b65931b04364c37f6 (patch) | |
tree | 498d57828744685616636c4b6ae3b8e3629c4812 /src/dircolors.c | |
parent | 75c9fc6740e93dba95f63a1e5e92bd5cf17f1743 (diff) | |
download | coreutils-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.
Diffstat (limited to 'src/dircolors.c')
-rw-r--r-- | src/dircolors.c | 12 |
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 { |