diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-01-17 21:39:56 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-01-17 21:39:56 -0800 |
| commit | 25346aa214379317af5288b222fd0a81af75de20 (patch) | |
| tree | f30a8c977cf11e2a4d77551e30fba5fd4c366fb6 | |
| parent | 1110a0ce8b3c9732f14f81e81e0e3bc7a0a6ddda (diff) | |
Updated the behavior of !=/== to only consider exact, full-text matches
instead of prefix matches
| -rw-r--r-- | grammars/builtins.bp | 2 | ||||
| -rw-r--r-- | match.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/grammars/builtins.bp b/grammars/builtins.bp index a8d0a8b..83a1eae 100644 --- a/grammars/builtins.bp +++ b/grammars/builtins.bp @@ -40,7 +40,7 @@ brackets: `[..`] % (\n/brackets/string) braces: `{..`} % (\n/braces/string) parens: `(..`) % (\n/parens/string) string: `"..`" % (`\.) / `'..`' % (`\.) -id: !<`a-z,A-Z,_,0-9 (`a-z,A-Z,_ *`a-z,A-Z,_,0-9)!=(keyword$) +id: !<`a-z,A-Z,_,0-9 (`a-z,A-Z,_ *`a-z,A-Z,_,0-9)!=keyword id-char: `a-z,A-Z,_,0-9 var: id keyword: !"" # No keywords defined by default @@ -379,7 +379,7 @@ match_t *match(def_t *defs, file_t *f, const char *str, pat_t *pat, unsigned int .mmapped=f->mmapped, }; match_t *m2 = match(defs, &inner, str, pat->args.multiple.second, ignorecase); - if ((m2 == NULL) == (pat->type == BP_EQUAL)) { + if ((m2 == NULL || m2->end != m1->end) == (pat->type == BP_EQUAL)) { recycle_if_unused(&m1); if (m2 != NULL) recycle_if_unused(&m2); return NULL; |
