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