diff options
author | Szabolcs Nagy <nsz@port70.net> | 2015-04-18 14:31:07 +0000 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2016-01-30 20:51:58 -0500 |
commit | a8cc2253843e30dfbdf0bb2954439d9f2b2e8704 (patch) | |
tree | 8173ad73162abc8302d692a826bf2dbd21a8f84d /src | |
parent | 9ee57db8834ee0d9adb1e6a84a75b0818dbfca69 (diff) | |
download | musl-a8cc2253843e30dfbdf0bb2954439d9f2b2e8704.tar.gz musl-a8cc2253843e30dfbdf0bb2954439d9f2b2e8704.tar.bz2 musl-a8cc2253843e30dfbdf0bb2954439d9f2b2e8704.tar.xz musl-a8cc2253843e30dfbdf0bb2954439d9f2b2e8704.zip |
regex: clean up position accounting for literal nodes
This should not change the meaning of the code, just make the intent
clearer: advancing position is tied to adding a new literal.
Diffstat (limited to 'src')
-rw-r--r-- | src/regex/regcomp.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c index 330de467..ac207c89 100644 --- a/src/regex/regcomp.c +++ b/src/regex/regcomp.c @@ -834,22 +834,20 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s) return REG_EBRACE; s++; } - node = tre_ast_new_literal(ctx->mem, v, v, ctx->position); - ctx->position++; + node = tre_ast_new_literal(ctx->mem, v, v, ctx->position++); s--; break; default: if (!ere && (unsigned)*s-'1' < 9) { /* back reference */ int val = *s - '0'; - node = tre_ast_new_literal(ctx->mem, BACKREF, val, ctx->position); + node = tre_ast_new_literal(ctx->mem, BACKREF, val, ctx->position++); ctx->max_backref = MAX(val, ctx->max_backref); } else { /* extension: accept unknown escaped char as a literal */ goto parse_literal; } - ctx->position++; } s++; break; |