Winefile: fix "move file" implementation

Francois Gouget fgouget at free.fr
Thu Oct 7 04:35:24 CDT 2004


On Thu, 7 Oct 2004, Martin Fuchs wrote:
[...]

> Hi Francois,
>
>>> Winefile was always UNICODE/ANSI-capable by using TCHAR, TEXT(),
>>> and the right functions. Currently ReactOS is using the UNCODE version,
>>> and Wine is using the ANSI version. Both without problems.
>
>> I think it's wrong that Wine's winefile is ANSI: doesn't that mean we'll
>> have trouble displaying filenames in some cases?
>
> Some very rare cases - yes may be.
> Does the Wine implementation deliver UNICODE file names anyhow?
> UNICODE filenames are mostly only present when using a NTFS drive.

Of course it does if you call the Unicode functions. Unix systems 
don't store the filenames in Unicode but use codepages. This codepage 
may be UTF-8 which is equivalent to Unicode or some other codepage. 
Wine takes care of converting from that codepage to Unicode.


> Well, changing Wine's winefile to UNICODE is not as easy as in ReactOS:
>
> - First the problem of TEXT() string constants. They would have to
> converted to the (IMHO) ugly "WCHAR str = {...}" constants.

Ugly but working, both in Wine and in Reactos.


> - Winefile also reads Unix directories using readdir().
> Is there a UNICODE version of this function, or would you have to
> use some UTF-8 conversion?

There's no Unix function that returns 16bit Unicode characters. But the 
filenames retrieved from readdir() can easily be converted to Unicode by 
using MultiByteToWideChar(...CP_UNIX...).

-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
                Dieu dit: "M-x Lumi\xE8re". Et la lumi\xE8re fut.



More information about the wine-devel mailing list