summaryrefslogtreecommitdiff
path: root/regex.c
diff options
context:
space:
mode:
Diffstat (limited to 'regex.c')
-rw-r--r--regex.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/regex.c b/regex.c
index 29e720776b..3199fe4f9e 100644
--- a/regex.c
+++ b/regex.c
@@ -2968,9 +2968,11 @@ re_search(bufp, string, size, startpos, range, regs)
while (range > 0) {
c = *p++;
if (ismbchar(c)) {
- int len = mbclen(c) - 1;
+ int len;
+
if (fastmap[c])
break;
+ len = mbclen(c) - 1;
while (len--) {
c = *p++;
range--;
@@ -2981,8 +2983,8 @@ re_search(bufp, string, size, startpos, range, regs)
else {
if (fastmap[MAY_TRANSLATE() ? translate[c] : c])
break;
- range--;
}
+ range--;
}
startpos_adjust:
startpos += irange - range;