perl-unicode

Re: My favorite bug to fix for 5.8.0

2002-03-10 10:47:40
Patch #15146:

[snip snip]

+The C<:std> subpragma on its own has no effect, but if combined with
+the C<:utf8> or C<:encoding> subpragmas, it converts the standard
+filehandles (STDIN, STDOUT, STDERR) to comply with encoding selected
+for input/output handles.  For example, if both input and out are
+chosen to be C<:utf8>, a C<:std> will mean that STDIN, STDOUT, and
+STDERR are also in C<:utf8>.  On the other hand, if only output is
+chosen to be in C<:encoding(koi8r)', a C<:std> will cause only the
+STDOUT and STDERR to be in C<koi8r>.  The C<:locale> subpragma
+implicitly turns on C<:std>.

[snip snip]

This is what it looks like in Solaris which has UTF-8 locales.
Notice how the last two do not warn (the 0x80 after the 0xc4 has
been destroyed by my cut and paste, though, this is a MacOS 9
terminal program I'm using...)

mimosa:/tmp/jhi/perl ; env LC_ALL=en_US ./perl -Ilib -wle 'print chr(0x100)'
Wide character in print at -e line 1.
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -wle 'print 
chr(0x100)'
Wide character in print at -e line 1.
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -Mopen=:std -wle 
'print chr(0x100)'
Wide character in print at -e line 1.
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -Mopen=:std,:utf8 
-wle 'print chr(0x100)'
Ä
mimosa:/tmp/jhi/perl ; env LC_ALL=en_US.UTF-8 ./perl -Ilib -Mopen=:locale -wle 
'print chr(0x100)'   
Ä
mimosa:/tmp/jhi/perl ; 


-- 
$jhi++; # http://www.iki.fi/jhi/
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen