[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]
Change 30638 introduces regression
Change 30638 by nicholas@nicholas-saigo on 2007/03/19 19:57:29
==== //depot/maint-5.8/perl/regexec.c#94 (text) ====
@@ -3473,8 +3473,9 @@
sayNO;
}
/* PL_reginput == locinput now */
+ PL_reginput = locinput; /* Could be reset... */
TRYPAREN(paren, ln, locinput);
- PL_reginput = locinput; /* Could be reset... */
+
REGCP_UNWIND(lastcp);
/* Couldn't or didn't -- move forward. */
old = locinput;
introduces a regression in 5.8.x. The same code in blead (28417) does not.
Minimal test case is
#!/usr/bin/perl -w
use strict;
$_ = "io\n io";
print /^\s*i.*?o\s*$/s ? "ok\n" : "not ok\n";
__END__
diff-ing the output of -Dr, I get:
$ diff -u fails works
--- fails 2008-09-16 21:25:45.000000000 +0100
+++ works 2008-09-16 21:25:47.000000000 +0100
@@ -53,8 +53,16 @@
> <io> | 13: SEOL
failed...
failed...
- SANY can match 3 times out of 4...
- failed...
- failed...
-Match failed
+ SANY can match 4 times out of 4...
+ 5 <io
+ i> <o> | 9: EXACT <o>
+ 6 <io
+ io> <> | 11: STAR
+ SPACE can match 0 times out of 2147483647...
+ Setting an EVAL scope, savestack=6
+ 6 <io
+ io> <> | 13: SEOL
+ 6 <io
+ io> <> | 14: END
+Match successful!
Freeing REx: `"^\\s*i.*?o\\s*$"'
Any clues as to what is going wrong here?
Nicholas Clark
- Follow-Ups from:
-
Dave Mitchell <davem@iabyn.com>
[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]