On Thu, 19 Feb 2004 22:03:14 +0200, Jarkko Hietaniemi <[EMAIL PROTECTED]> 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