Jesse Allen wrote:
On 10/31/05, Alex Villacís Lasso a_villacis@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