Change 18858 by [EMAIL PROTECTED] on 2003/03/09 10:54:10

        From Inaba Hiroto: re_intuit_start set a value to
        PL_bostr before calling find_byclass when regexp has
        ROPT_UTF8 flag on. But right value for PL_bostr is set
        before re_intuit_start is called.  PL_regdata is always
        assigned by cache_re(), so the whole if(prog->reganch & ROPT_UTF8){}
        can be deleted.                                 

Affected files ...

... //depot/perl/regexec.c#306 edit
... //depot/perl/t/op/pat.t#198 edit

Differences ...

==== //depot/perl/regexec.c#306 (text) ====
Index: perl/regexec.c
--- perl/regexec.c#305~18801~   Sun Mar  2 07:24:22 2003
+++ perl/regexec.c      Sun Mar  9 02:54:10 2003
@@ -852,10 +852,6 @@
        char *startpos = strbeg;
 
        t = s;
-       if (prog->reganch & ROPT_UTF8) {        
-           PL_regdata = prog->data;
-           PL_bostr = startpos;
-       }
        cache_re(prog);
        s = find_byclass(prog, prog->regstclass, s, endpos, startpos, 1);
        if (!s) {

==== //depot/perl/t/op/pat.t#198 (xtext) ====
Index: perl/t/op/pat.t
--- perl/t/op/pat.t#197~18857~  Sun Mar  9 02:46:23 2003
+++ perl/t/op/pat.t     Sun Mar  9 02:54:10 2003
@@ -3149,4 +3149,14 @@
     ok("\x{100}\n" =~ /\x{100}\n$/, "UTF8 length cache and fbm_compile");  
 }
 
-# last test 995
+{
+    package Str;
+    use overload q/""/ => sub { ${$_[0]}; };
+    sub new { my ($c, $v) = @_; bless \$v, $c; }
+
+    package main;
+    $_ = Str->new("a\x{100}/\x{100}b");
+    ok(join(":", /\b(.)\x{100}/g) eq "a:/", "re_intuit_start and PL_bostr");
+}
+
+# last test 996
End of Patch.

Reply via email to