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.
p4raw-id: //depot/perl@18858
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) {
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