unix filenames in notepad

Eric Frias efrias at syncad.com
Fri May 6 08:25:15 CDT 2005


James Hawkins wrote:
> On 5/5/05, Troy Rollo <wine at troy.rollo.name> wrote:
>>Precisely. WINE is not just for running apps compiled for Windows - it's also
>>for making the Windows API available under UNIX. For this second application,
>>users need to (at a minimum) be seeing UNIX paths (and not Windows paths at
>>all) in the dialog. It is also reasonable in this context for the application
>>to expect to use APIs with UNIX paths without having to convert them.
> 
> wine wasn't designed to accept unix paths in the apis directly or to
> display them in open file dialogs, and that's why we have virtual
> drives.

Whether or not wine was originally designed for this, winelib as it 
exists right now is great for making a unix-native version of a windows 
program.  The commercial porting library I have experience with behaves 
exactly this way -- Windows API functions took and returned native unix 
paths, and everything displayed to the user looked like a normal unix 
path.  We found this to be a very natural way for a porting library to 
behave.

I'm not saying that this should be the only way winelib should behave, 
or even that it should be the default way.  It seems like several of us 
have already made our own hacks to get winelib to work this way -- it 
would be a shame not to at least make unix paths an option.

In our application, we would often take a filename that came from a 
windows API function, (say, a Save File dialog), and do something like 
construct a std::ofstream() using that path.  Since the standard library 
wasn't compiled against wine, it gets confused by the windows paths, and 
creates a file named 'z:\tmp\foo.txt' in the current directory, instead 
of '/tmp/foo.txt' like I want it to.  Yes, we could've figured out how 
to compile all of our third-party libraries against wine and it would've 
worked, but that can be a *lot* of work and you still don't end up with 
an application that looks at home on unix.

>>I'm leaning toward the separate entry point solution (the various approaches
>>were canvassed here a couple of weeks ago) since it avoids problems with
>>Microsoft adding new flags of their own later that use the same values as
>>WINE specific flags.
> 
> This just adds complexity to an already complex beast.  Keep it simple.

So far, the separate entry point solution sounds like the best one to me 
also, at least for selecting what the API functions expect & return. 
I'm not sure about the best way to select whether unix paths are 
displayed to the user or not.  Since that could also benefit 
windows-native applications, that preference might be better off stored 
in the registry or elsewhere.

Eric



More information about the wine-devel mailing list