diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-01-05 00:09:30 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-01-05 00:09:30 -0800 |
| commit | 4350d996d1f4987ae83569acfdec2e25b996f599 (patch) | |
| tree | 835ab3332ec593c748f4eabd7490266b2e22aa30 /vm.c | |
| parent | 8d14bf01bc3c3cfbb3613487b59fe0bc4d6efba6 (diff) | |
Simplified `...` to `..%\n` and `$.` to `./\n`
Diffstat (limited to 'vm.c')
| -rw-r--r-- | vm.c | 10 |
1 files changed, 3 insertions, 7 deletions
@@ -106,7 +106,7 @@ static match_t *_match(grammar_t *g, file_t *f, const char *str, vm_op_t *op, un { switch (op->op) { case VM_ANYCHAR: { - if (str >= f->end || (!op->multiline && *str == '\n')) + if (str >= f->end || *str == '\n') return NULL; match_t *m = new(match_t); m->op = op; @@ -152,11 +152,7 @@ static match_t *_match(grammar_t *g, file_t *f, const char *str, vm_op_t *op, un m->start = str; m->op = op; if (!op->args.multiple.first && !op->args.multiple.second) { - if (op->multiline) { - str = f->end; - } else { - while (str < f->end && *str != '\n') ++str; - } + while (str < f->end && *str != '\n') ++str; } else { match_t **dest = &m->child; for (const char *prev = NULL; prev < str; ) { @@ -181,7 +177,7 @@ static match_t *_match(grammar_t *g, file_t *f, const char *str, vm_op_t *op, un // This isn't in the for() structure because there needs to // be at least once chance to match the pattern, even if // we're at the end of the string already (e.g. "..$"). - if (str < f->end && (op->multiline || *str != '\n')) + if (str < f->end && *str != '\n') str = next_char(f, str); } destroy_match(&m); |
