summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2015-10-13 15:26:38 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2015-10-13 15:27:20 -0700
commit8c0b2f39b3b194eadb82210d7e2e1abf2da2a929 (patch)
tree63c189bebd63567302ce29b752c7d3d571a62223 /src
parent508dd6eb0b9a27db1106046169dc77e67e2d0720 (diff)
downloadgrep-8c0b2f39b3b194eadb82210d7e2e1abf2da2a929.tar.gz
dfa: make the executable a bit smaller
* src/dfa.c (dfamust): Hoist MB_CUR_MAX calculation out of loops.
Diffstat (limited to 'src')
-rw-r--r--src/dfa.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dfa.c b/src/dfa.c
index cdea4e57..c1a00f8d 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -3942,6 +3942,7 @@ dfamust (struct dfa const *d)
bool endline = false;
bool need_begline = false;
bool need_endline = false;
+ bool case_fold_unibyte = case_fold && MB_CUR_MAX == 1;
for (size_t ri = 0; ri < d->tindex; ++ri)
{
@@ -4108,7 +4109,7 @@ dfamust (struct dfa const *d)
t = j;
while (++j < NOTCHAR)
if (tstbit (j, *ccl)
- && ! (case_fold && MB_CUR_MAX == 1
+ && ! (case_fold_unibyte
&& toupper (j) == toupper (t)))
break;
if (j < NOTCHAR)
@@ -4131,14 +4132,14 @@ dfamust (struct dfa const *d)
}
mp = allocmust (mp, ((rj - ri) >> 1) + 1);
mp->is[0] = mp->left[0] = mp->right[0]
- = case_fold && MB_CUR_MAX == 1 ? toupper (t) : t;
+ = case_fold_unibyte ? toupper (t) : t;
for (i = 1; ri + 2 < rj; i++)
{
ri += 2;
t = d->tokens[ri];
mp->is[i] = mp->left[i] = mp->right[i]
- = case_fold && MB_CUR_MAX == 1 ? toupper (t) : t;
+ = case_fold_unibyte ? toupper (t) : t;
}
mp->is[i] = mp->left[i] = mp->right[i] = '\0';
mp->in = enlist (mp->in, mp->is, i);