KERNEL: force copying of DOS-style path into argv[0] of
PE process
Alex Villacís Lasso
a_villacis at palosanto.com
Tue Nov 1 10:38:19 CST 2005
Jesse Allen wrote:
>On 10/31/05, Alex Villacís Lasso <a_villacis at palosanto.com> wrote:
>
>
>>Jesse Allen wrote:
>>
>>
>>>This is a quite interesting theory. So I went ahead and tried to
>>>launch LogicWorks with a "windows" method in wine, and well, I've
>>>failed so far with wine's ProgMan.exe. The progman crashes anyway
>>>I've tried.
>>>
>>>So I boot to windows and try logicworks from cmd.exe. Indeed, I hit
>>>the same bug as in wine. So what we have are programs that expect a
>>>certain behavior and the command line doesn't do it. Bad design.
>>>
>>>
>>>
>>Hmmm... this raises doubts on whether the behavior should be implemented
>>at all. What version of Windows are you using?
>>
>>
>
>WinXP
>
>
>
>>Does your version supply
>>a COMMAND.COM (in WinXP, it is at c:\windows\system32)? Have you tried
>>running your program from COMMAND.COM? I would guess that COMMAND.COM
>>supplies a fully qualified path to the executable file (as in MS-DOS and
>>Windows 9x), but WinNT/WinXP do not when CMD.EXE is used (???).
>>
>>
>
>I tried command.com and it does not provide a full path in argv[0], I
>believe. I'm gonna write a test program.
>
>
>
>>Then,
>>explorer.exe supplies the fully qualified path at all times - that is
>>why the programs do not crash when started from the shortcuts.
>>
>>So, what should be the policy in Wine? Should Wine supply the qualified
>>name at all (I still think it should)? Mr. Julliard sent a patch
>>proposal that conditionally sets the name. I will try it at home and
>>report on it tomorrow.
>>
>>
>>
>
>I think 'wine' should launch like explorer by default, and wine's cmd
>should launch like window's cmd. A winecfg per-app setting could work
>too but I don't like that as much.
>
>Jesse
>
>
I have now tried Mr. Julliard's patch. It works for me.
I have also tried the tests on both Windows 98 and Windows XP (I have a
triple-boot configuration):
Windows 98: explorer.exe gives qualified name. command.com gives
qualified name
WindowsXP: explorer gives qualified name. Neither command.com or cmd.exe
give a qualified name.
The conclusion is that both DungeonKeeper and LogicWorks expect the
Win98 behavior, and crash on both shells in WinXP. I think wine should
follow the Win98 behavior (in order to minimize the crashes), and Mr.
Julliard's patch does just that.
Alex Villacís Lasso
More information about the wine-devel
mailing list