diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-01-23 16:03:12 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-01-23 16:03:36 -0800 |
commit | 8f2d7009a1c982c6ed9c844529639f1794d029bb (patch) | |
tree | 99e9a69931f577cfddec8c97e31ed062c7b53d99 /src | |
parent | b2e0f3f86c6ff948c9b37668af762ea90f06e401 (diff) | |
download | grep-8f2d7009a1c982c6ed9c844529639f1794d029bb.tar.gz |
grep: simplify recent kwset change
* src/kwset.c (acexec_trans): Simplify.
Diffstat (limited to 'src')
-rw-r--r-- | src/kwset.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/kwset.c b/src/kwset.c index 258cff53..3be5c427 100644 --- a/src/kwset.c +++ b/src/kwset.c @@ -848,20 +848,15 @@ acexec_trans (kwset_t kwset, char const *text, ptrdiff_t len, struct trie const *accept1; char const *left1; unsigned char c = tr (trans, *tp++); - while (true) + + do { tree = trie->links; while (tree && c != tree->label) tree = c < tree->label ? tree->llink : tree->rlink; - if (tree) - break; - trie = trie->fail; - if (!trie) - break; - left1 = tp - trie->depth; - if (left1 > left) - break; } + while (!tree && (trie = trie->fail) && accept->depth <= trie->depth); + if (!tree) break; trie = tree->trie; |