diff options
Diffstat (limited to 'libc/misc/regex')
-rw-r--r-- | libc/misc/regex/regcomp.c | 3 | ||||
-rw-r--r-- | libc/misc/regex/regex_old.c | 23 |
2 files changed, 12 insertions, 14 deletions
diff --git a/libc/misc/regex/regcomp.c b/libc/misc/regex/regcomp.c index ada380632..8f2e18ce4 100644 --- a/libc/misc/regex/regcomp.c +++ b/libc/misc/regex/regcomp.c @@ -791,9 +791,6 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, /* Initialize DFA. We use the length of the regular expression PAT_LEN as the initial length of some arrays. */ -#ifdef __UCLIBC_HAS_WCHAR__ -#endif - static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { diff --git a/libc/misc/regex/regex_old.c b/libc/misc/regex/regex_old.c index fc51610c8..3550698d3 100644 --- a/libc/misc/regex/regex_old.c +++ b/libc/misc/regex/regex_old.c @@ -6035,17 +6035,18 @@ byte_re_match_2_internal ( { /* No. So allocate them with malloc. We need one extra element beyond `num_regs' for the `-1' marker GNU code uses. */ -// regex specs say: -// "If REGS_UNALLOCATED, allocate space in the regs structure -// for max(RE_NREGS, re_nsub + 1) groups" -// but real-world testsuites fail with contrived examples -// with lots of groups. -// I don't see why we can't just allocate exact needed number. -// Incidentally, it makes RE_NREGS unused. -// -// regs->num_regs = MAX (RE_NREGS, num_regs + 1); - VERY WRONG -// regs->num_regs = MIN (RE_NREGS, num_regs + 1); - slightly less wrong -// good one which passes uclibc test/regex/tst-regex2.c: +/* regex specs say: + * "If REGS_UNALLOCATED, allocate space in the regs structure + * for max(RE_NREGS, re_nsub + 1) groups" + * but real-world testsuites fail with contrived examples + * with lots of groups. + * I don't see why we can't just allocate exact needed number. + * Incidentally, it makes RE_NREGS unused. + * + * regs->num_regs = MAX (RE_NREGS, num_regs + 1); - VERY WRONG + * regs->num_regs = MIN (RE_NREGS, num_regs + 1); - slightly less wrong + * good one which passes uclibc test/regex/tst-regex2.c: + */ regs->num_regs = num_regs + 1; regs->start = TALLOC (regs->num_regs, regoff_t); regs->end = TALLOC (regs->num_regs, regoff_t); |