if (DO_UTF8(argsv)) {
STRLEN old_precis = precis;
if (has_precis && precis < elen) {
- STRLEN ulen = sv_len_utf8(argsv);
- I32 p = precis > ulen ? ulen : precis;
- sv_pos_u2b(argsv, &p, 0); /* sticks at end */
- precis = p;
+ STRLEN ulen = sv_len_utf8_nomg(argsv);
+ STRLEN p = precis > ulen ? ulen : precis;
+ precis = sv_pos_u2b_flags(argsv, p, 0, 0);
+ /* sticks at end */
}
if (width) { /* fudge width (can't fudge elen) */
if (has_precis && precis < elen)
chdir 't' if -d 't';
@INC = '../lib';
require './test.pl';
- plan (tests => 309);
+ plan (tests => 310);
}
use strict;
tie $var, "main", "\x{100}";
pos$var = 0 ; check_count 'lvalue pos $utf8';
$dummy=sprintf"%1s",$var; check_count 'sprintf "%1s", $utf8';
+$dummy=sprintf"%.1s",$var; check_count 'sprintf "%.1s", $utf8';
$dummy = substr$var,0,1; check_count 'substr $utf8';
my $l =\substr$var,0,1;
$dummy = $$l ; check_count 'reading lvalue substr($utf8)';