perl-unicode

Re: Win32 *W functions and old -C behavior

2006-11-01 03:31:22
"Jan Dubois" <jand(_at_)activestate(_dot_)com> wrote:
just why it was removed without any alternative way to ask Perl
to use native calls (since all *A calls on any NT system is
just wrappers around *W).
[...]
This has already been discussed some time ago:
http://www.mhonarc.org/archive/html/perl-unicode/2004-02/msg00016.html
Please read the whole thread to see why the code was first disabled
and then removed, and why it is a big task to make Perl work properly
with Unicode filenames (not just on Windows, on all platforms).

Alas, I couldn't get to general discussion - link at end of -C discussion
seems to be either mangled in a way I can't restore or broken. Can you
name a few major points, since the way old -C switch worked seems to
be intuitive and logical to me (provided bug with UTF-8 flag in it
would be fixed, of course).

But actually, that thread didn't made things much clearer to me. As
I understood it, there were largely working feature that had correct
end-user (end-programmer :) presence in Perl - it worked with exactly
the same kind of data that Perl uses for unicode everywhere, with
UTF-8 - had two major, but easily fixed flaws: absent UTF-8 flag check,
that can easily be handled by calling MultiByteToWideChar with
either CP_UTF8 or CP_ACP, depending on presence of flag and
Win9x compatibility concerns, that can be addressed, as mentioned
with that thread already, using MSLU or writting mini-library
that would call *A or *W version depending on system version.
And instead of fixing this easy flaws and sequentally addressing
other small issues, feature, or I better say, absolutely necessary
function of language that wish to have any success in multi-lingual
environment was just completely disabled? I don't understand it.
Perl support of unicode in data have problems on EBCDIC platforms,
but nobody goes out and disables it, so why it was disabled in this
case?

Here is a message that shows how you can open a file whose
name can only be represented in Unicode:
http://www.mhonarc.org/archive/html/perl-unicode/2005-02/msg00010.html

Yes, I know. My module uses almost the same lines, except I call
API with Win32::API instead of Win32API::File. However, not mentioning
that this is just ugly, even using specialised module that would simplify
such a thing to one neat function call have a several major flaws: first,
it is unportable, second, you can use it in program you wrote yourself,
but it won't fix for you number of useful Perl programs lying around, nor
it will help you with dozens of modules that work with files passed by
their names.

-- 
Oleg "Rowaa[SR13]" V. Volkov

<Prev in Thread] Current Thread [Next in Thread>