diff options
| author | Tyge Løvset <[email protected]> | 2022-10-14 10:25:55 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-10-14 10:25:55 +0200 |
| commit | 54c08dc031c622e78dc134353690ed359b9173d8 (patch) | |
| tree | 38d827af29aa30350099a71d84d0caf0510b05ed /src | |
| parent | b2103dc2084f2f0b05645acc7879c9ff5ad84a05 (diff) | |
| download | STC-modified-54c08dc031c622e78dc134353690ed359b9173d8.tar.gz STC-modified-54c08dc031c622e78dc134353690ed359b9173d8.zip | |
Update sso_bench.cpp benchmark, and some internal improvements.
Diffstat (limited to 'src')
| -rw-r--r-- | src/cregex.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/cregex.c b/src/cregex.c index 17284dfe..849601da 100644 --- a/src/cregex.c +++ b/src/cregex.c @@ -344,7 +344,7 @@ static void evaluntil(Parser *par, Token type); static int bldcclass(Parser *par); static void -rcerror(Parser *par, cregex_error_t err) +rcerror(Parser *par, cregex_result err) { par->error = err; longjmp(par->regkaboom, 1); @@ -736,13 +736,14 @@ bldcclass(Parser *par) int inv = par->exprp[1] == '^', off = 1 + inv; for (unsigned i = 0; i < (sizeof cls/sizeof *cls); ++i) if (!strncmp(par->exprp + off, cls[i].c, cls[i].n)) { - if (par->rune_type == IRUNE && (cls[i].r == ASC_lo || cls[i].r == ASC_up)) - rune = ASC_al + inv; - else - rune = cls[i].r + inv; + rune = cls[i].r; par->exprp += off + cls[i].n; break; } + if (par->rune_type == IRUNE && (rune == ASC_lo || rune == ASC_up)) + rune = ASC_al; + if (inv && rune != '[') + rune += 1; } } *ep++ = rune; @@ -1192,8 +1193,7 @@ int cregex_compile(cregex *self, const char* pattern, int cflags) { Parser par; self->prog = regcomp1(self->prog, &par, pattern, cflags); - self->error = par.error; - return self->prog ? cre_success : par.error; + return self->error = par.error; } int |
