Jan Dubois wrote:
On Thu, 19 Feb 2004 22:03:14 +0200, Jarkko Hietaniemi <jhi(_at_)iki(_dot_)fi>
wrote:
But even just for core Perl, things become more complicated as long as you
want to support Windows 95/98/Me. Those platforms (I'm using the term
loosely) do not support the wide APIs. So you can't always use the wide
APIs whenever an SV has the UTF8 bit sit; you'll actually have to try to
downgrade to Latin1 in that case.
Well, it's gotta be Windows-1252 where the system codepage is
Windows-1252, which is only the case on West European versions of
Windows 9x/ME. What you have to downgrade to depends on the the system
codepage. For instance, on Japanese version of Windows, it's
Windows-936. On Russian Win9x/ME, it's Windows-1251.
> Microsoft has a Unicode emulation layer
for Win9X, but as far as I can tell, you cannot use it transparently on
Win9x only, you'll have to create separate binaries. Maybe that is a
reasonable price to pay though.
You don't need a separate binary for Win9x/ME as long as the MSLU
(Microsoft Layer for Unicode) is guaranteed to be available on Win
9x/ME. The whole point of MSLU is that you do not have to build separate
binaries for Win 9x/ME and Win 2k/XP. The question is whether MSLU dll
is always available on Win 9x/ME. It comes with MS IE 5.x or later so
that it's likely to be available on _most_ Win 9x/ME. An alternative to
assuming that MSLU is always available is to build your own 'MSLU' that
checks the OS version at run-time and calls native 'W' APIs or 'fake W
APIs' depending on the OS version. That's what Mozilla does to a limited
extent. Needless to say, building separate binaries for Win 9x/ME and
Win 2k/XP is another option.
Jungshik