From e2a87ae3af47e39ec3dd7c67f7ff0ea6188808d6 Mon Sep 17 00:00:00 2001 From: Yuri Pankov Date: Wed, 19 Dec 2018 23:28:56 +0000 Subject: [PATCH] regcomp: revert part of r341838 which turned out to be unrelated and caused issues with search in less. PR: 234066 Reviewed by: pfg Differential revision: https://reviews.freebsd.org/D18611 --- lib/libc/regex/regcomp.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/lib/libc/regex/regcomp.c b/lib/libc/regex/regcomp.c index d815382cb301..509b9e7fa4af 100644 --- a/lib/libc/regex/regcomp.c +++ b/lib/libc/regex/regcomp.c @@ -1841,29 +1841,21 @@ computejumps(struct parse *p, struct re_guts *g) { int ch; int mindex; - int cmin, cmax; - - /* - * For UTF-8 we process only the first 128 characters corresponding to - * the POSIX locale. - */ - cmin = MB_CUR_MAX == 1 ? CHAR_MIN : 0; - cmax = MB_CUR_MAX == 1 ? CHAR_MAX : 127; /* Avoid making errors worse */ if (p->error != 0) return; - g->charjump = (int *)malloc((cmax - cmin + 1) * sizeof(int)); + g->charjump = (int *)malloc((NC_MAX + 1) * sizeof(int)); if (g->charjump == NULL) /* Not a fatal error */ return; /* Adjust for signed chars, if necessary */ - g->charjump = &g->charjump[-(cmin)]; + g->charjump = &g->charjump[-(CHAR_MIN)]; /* If the character does not exist in the pattern, the jump * is equal to the number of characters in the pattern. */ - for (ch = cmin; ch < cmax + 1; ch++) + for (ch = CHAR_MIN; ch < (CHAR_MAX + 1); ch++) g->charjump[ch] = g->mlen; /* If the character does exist, compute the jump that would