-# This is the twin of enc_utf8.t, the only difference is that
-# this has "use encoding 'euc-jp'".
+# $Id: enc_eucjp.t,v 2.0 2004/05/16 20:55:18 dankogai Exp $
+# This is the twin of enc_utf8.t .
BEGIN {
require Config; import Config;
print "1..0 # encoding pragma does not support EBCDIC platforms\n";
exit(0);
}
+ if ($] <= 5.008 and !$Config{perl_patchlevel}){
+ print "1..0 # Skip: Perl 5.8.1 or later required\n";
+ exit 0;
+ }
}
use encoding 'euc-jp';
my @f;
for my $i (0..$#c) {
- push @f, "f$i";
- open(F, ">f$i") or die "$0: failed to open 'f$i' for writing: $!";
+ no warnings 'pack';
+ my $file = filename("f$i");
+ push @f, $file;
+ open(F, ">$file") or die "$0: failed to open '$file' for writing: $!";
binmode(F, ":utf8");
print F chr($c[$i]);
+ print F pack("C" => $c[$i]);
close F;
}
my $t = 1;
for my $i (0..$#c) {
- open(F, "<f$i") or die "$0: failed to open 'f$i' for reading: $!";
+ my $file = filename("f$i");
+ open(F, "<$file") or die "$0: failed to open '$file' for reading: $!";
binmode(F, ":utf8");
my $c = <F>;
my $o = ord($c);
$t++;
}
-my $f = "f" . @f;
+my $f = filename("f" . @f);
push @f, $f;
open(F, ">$f") or die "$0: failed to open '$f' for writing: $!";
local $SIG{__WARN__} = sub { $a = shift };
eval { <F> }; # This should get caught.
}
+close F;
print $a =~ qr{^utf8 "\\x80" does not map to Unicode} ?
"ok $t - illegal utf8 input\n" : "not ok $t - illegal utf8 input: a = " . unpack("H*", $a) . "\n";
+# On VMS temporary file names like "f0." may be more readable than "f0" since
+# "f0" could be a logical name pointing elsewhere.
+sub filename {
+ my $name = shift;
+ $name .= '.' if $^O eq 'VMS';
+ return $name;
+}
+
END {
1 while unlink @f;
}