print F @a;
close F;
+my $c;
+
+# read() should work on characters, not bytes
open F, "<:utf8", "a";
$a = 0;
for (@a) {
- unless (read(F, $b, 1) == 1 &&
- length($b) == 1 &&
- ord($b) == ord($_) &&
- tell(F) == ($a += bytes::length($b))) {
- print '# ord($_) == ', ord($_), "\n";
- print '# ord($b) == ', ord($b), "\n";
- print '# length($b) == ', length($b), "\n";
- print '# tell(F) == ', tell(F), "\n";
+ unless (($c = read(F, $b, 1) == 1) &&
+ length($b) == 1 &&
+ ord($b) == ord($_) &&
+ tell(F) == ($a += bytes::length($b))) {
+ print '# ord($_) == ', ord($_), "\n";
+ print '# ord($b) == ', ord($b), "\n";
+ print '# length($b) == ', length($b), "\n";
+ print '# bytes::length($b) == ', bytes::length($b), "\n";
+ print '# tell(F) == ', tell(F), "\n";
+ print '# $a == ', $a, "\n";
+ print '# $c == ', $c, "\n";
print "not ";
last;
}
close F;
print "ok 26\n";
-END { 1 while unlink "a" }
+# sysread() and syswrite() tested in lib/open.t since Fnctl is used
+
+END {
+ 1 while unlink "a";
+ 1 while unlink "b";
+}
+
+