wine's argv[0] and current directory
Vitaliy Margolen
wine-devel at kievinfo.com
Sat Jul 21 11:05:52 CDT 2007
Damjan Jovanovic wrote:
> Hi
>
> We have 2 problems in wine:
>
> 1. When you run "wine /path/to/app.exe", argv[0] is "/path/to/app.exe"
> which is definitely wrong. The most serious consequence of this is
> that apps run through file browser double-clicking can break.
>
> 2. Whether you run "wine D:\setup.exe" or "wine
> /media/cdrom/setup.exe", the current directory is never "D:\" and when
> you double-click an .exe the current directory is $HOME so it's always
> wrong. You can't "cd /media/cdrom && wine setup.exe" either because
> that stops ejecting the CD for multi-CD installs.
>
> Can we kill 2 birds with 1 stone here and do something like
>
> if (argv[0] is a unix path)
> {
> make argv[0] a windows path
> SetCurrentDirectory(directory of argv[0]);
> }
>
> before starting the app? Since Windows never uses UNIX paths this
> can't break any Windows app, and it will fix double-click startups and
> multiple CD installs.
>
First of all there are extensive tests for this in kernel32 process test.
Which shows exactly opposite from what you stated here - windows does
support use of unix path.
Second, your approach will brake lots of new programs that can not be
started from their directory. They can only be started from _outside_
directory they are in with 'start app.exe'.
Vitaliy.
More information about the wine-devel
mailing list