phobos/tango on win32: please drop ANSI "support"
kris
foo at bar.com
Wed Feb 14 23:32:20 PST 2007
Lionello Lunesu wrote:
> Walter Bright wrote:
>
>> Lionello Lunesu wrote:
>>
>>> Both Phobos and Tango pretend utf8 is valid for calling ANSI methods
>>> from the Windows' API. Obviously, it's not. The correct way is to
>>> convert the utf8 string to the code-page expected by the call, or
>>> convert them to unicode.
>>>
>>> I'd like to suggest the latter. Let's drop the ANSI support for Win32
>>> altogether. Unicode is supported since Windows 95 OSR-2 (if I'm not
>>> mistaken) and converting utf8 to ANSI is more expensive than
>>> converting it utf8 to utf16 (which is what Windows 2000 and up
>>> convert to internally anyway). No more "bool UseWFuncs". And
>>> converting utf8 to utf16 using MultiByteToWideChar would also take
>>> care of the 0-terminator.
>>
>>
>> The "useWfuncs" only happens for Windows 9x (including Me). All
>> Windows 9x systems are 8 bit internally, and even if you use the W
>> interface, they are internally converted to 8 bits anyway.
>
>
> Yes, they will be converted to "8 bits", but not to utf8. They will be
> converted to whatever code-page the thread's currently using, which is
> what's supposed to be done. That's my point: both Phobos and Tango pass
> utf8 to ANSI (..A) versions of Windows' functions, which is not correct.
Regarding Tango, it uses the WindowsA functions only if
-verion=Win32SansUnicode is configured. This switch is for supporting
certain older environments, but does /not/ imply that code-pages are
supported in Tango. There has never been an intent to do so.
For code-page support, we currently suggest using a library such as ICU
to do the appropriate conversions.
More information about the Digitalmars-d
mailing list