summaryrefslogtreecommitdiff
path: root/regexec.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2002-01-03 01:52:04 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2002-01-03 01:52:04 +0000
commit93c50829d83553b4361dbfd23cb665fcba82d307 (patch)
tree0c0091650a1b8e1b12a0d754ff81e560cc77a541 /regexec.c
parentdab065ea9c8b629eb22b219d57901aa33df76f4f (diff)
downloadperl-93c50829d83553b4361dbfd23cb665fcba82d307.tar.gz
Off-by-one is my middle name.
p4raw-id: //depot/perl@14031
Diffstat (limited to 'regexec.c')
-rw-r--r--regexec.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/regexec.c b/regexec.c
index 51b55f6979..75ea1521e8 100644
--- a/regexec.c
+++ b/regexec.c
@@ -960,7 +960,7 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *sta
c1 = *(U8*)m;
c2 = PL_fold_locale[c1];
do_exactf:
- e = do_utf8 ? s + ln - 1 : strend - ln;
+ e = do_utf8 ? s + ln : strend - ln;
if (norun && e < s)
e = s; /* Due to minlen logic of intuit() */
@@ -980,16 +980,14 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *sta
U8 tmpbuf [UTF8_MAXLEN+1];
U8 foldbuf[UTF8_MAXLEN_FOLD+1];
STRLEN len, foldlen;
- char* se;
if (c1 == c2) {
while (s <= e) {
c = utf8_to_uvchr((U8*)s, &len);
if ( c == c1
&& (ln == len ||
- ((se = e + 1) &&
- !ibcmp_utf8(s, &se, 0, do_utf8,
- m, 0 , ln, UTF)))
+ ibcmp_utf8(s, 0 , 0, do_utf8,
+ m, 0 , ln, UTF))
&& (norun || regtry(prog, s)) )
goto got_it;
else {
@@ -1025,9 +1023,8 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *sta
if ( (c == c1 || c == c2)
&& (ln == len ||
- ((se = e + 1) &&
- !ibcmp_utf8(s, &se, 0, do_utf8,
- m, 0, ln, UTF)))
+ ibcmp_utf8(s, 0, 0, do_utf8,
+ m, 0, ln, UTF))
&& (norun || regtry(prog, s)) )
goto got_it;
else {