@INC = '../lib';
}
-print "1..13\n";
+print "1..20\n";
print "not " unless length("") == 0;
print "ok 1\n";
}
{
- my $a = pack("U", 0x80);
+ my $a = pack("U", 0xFF);
print "not " unless length($a) == 1;
print "ok 6\n";
use bytes;
if (ord('A') == 193)
{
- printf "#%vx for 0x80\n",$a;
- print "not " unless $a eq "\x8a\x67" && length($a) == 2;
+ printf "#%vx for 0xFF\n",$a;
+ print "not " unless $a eq "\x8b\x73" && length($a) == 2;
}
else
{
- print "not " unless $a eq "\xc2\x80" && length($a) == 2;
+ print "not " unless $a eq "\xc3\xbf" && length($a) == 2;
}
print "ok 7\n";
$test++;
print "ok 15\n";
$test++;
}
+
+{
+ # Play around with Unicode strings,
+ # give a little workout to the UTF-8 length cache.
+ my $a = chr(256) x 100;
+ print length $a == 100 ? "ok 16\n" : "not ok 16\n";
+ chop $a;
+ print length $a == 99 ? "ok 17\n" : "not ok 17\n";
+ $a .= $a;
+ print length $a == 198 ? "ok 18\n" : "not ok 18\n";
+ $a = chr(256) x 999;
+ print length $a == 999 ? "ok 19\n" : "not ok 19\n";
+ substr($a, 0, 1) = '';
+ print length $a == 998 ? "ok 20\n" : "not ok 20\n";
+}