https://bugs.winehq.org/show_bug.cgi?id=57090
Bug ID: 57090 Summary: incorrectly parsing parameters in winevdm Product: Wine Version: 9.15 Hardware: x86-64 URL: https://winworldpc.com/product/aldus-photostyler/2x OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: crypt32 Assignee: wine-bugs@winehq.org Reporter: guillere@adinet.com.uy Distribution: Debian
"Aldus PhotoStyler 2.0 SE" installs "KODAC PRECISION Color configure" in the control panel, when you run it, it does nothing. Thinking it was a problem with the Control Panel Applet, I debugged kcfg32.cpl and there I saw that it called kcfg16.exe kcfg16.exe does nothing in wine, testing in windows I also notice that kcfg16.exe (win16) does nothing. I debug the applet again and see that it calls kcfg16.exe with parameters! If the parameters it expects are not there then it ends silently.
I test in windows7 with the detected parameters. CMD => kcfg16.exe 1 "c:\windows\system32\kcfg.hlp" "KODAC PRECISION Color configure"
I try variations of parameters I come to understand the general form kcfg16.exe $VALUE "$HELP_FILE_in_quotes" "$WINDOWS_TITLE_in_quotes"
$VALUE= 1 OR 2 OR 3 ; 3 is Snooper window $HELP_FILE_in_quotes= need to be quoted! can be any string ; used to call winhelp $WINDOWS_TITLE_in_quotes= need to be quoted! can be any string ; used for windows title
minimal functional form kcfg16.exe 1""""
In wine CMD => kcfg16.exe 1 "c:\windows\system32\kcfg.hlp" "KODAC PRECISION Color configure" => not work kcfg16.exe 1 "blabla" "blabla" => not work kcfg16.exe 1 "blabla" "blabla" => WORK!!!!!!!
Debugging getting insted it call winedvm.exe --app-name c:\windows\system32\kcfg16.exe c:\windows\system32\kcfg16.exe 1 "blabla" "blabla" => also not work winedvm.exe --app-name kcfg16.exe kcfg16.exe 1 "blabla" "blabla" => THIS WORKS!!!
https://bugs.winehq.org/show_bug.cgi?id=57090
Guillermo Reisch guillere@adinet.com.uy changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|crypt32 |-unknown
--- Comment #1 from Guillermo Reisch guillere@adinet.com.uy --- WINEDEBUG=trace+winevdm wine cmd
kcfg16 1 """"
013c:trace:winevdm:main GetCommandLine = 'C:\windows\system32\winevdm.exe --app-name "C:\windows\system32\kcfg16.exe" kcfg16 1 """"' ... 013c:trace:winevdm:main cmdline = '1 "' ... => expected cmdline = '1 """"'
winevdm kcfg16 1 "val1" "val 2"
015c:trace:winevdm:main GetCommandLine = 'winevdm kcfg16 1 "val1" "val 2"' ... 015c:trace:winevdm:main cmdline = '1 val1 "val 2"' ... => expected cmdline = '1 "val1" "val 2"'
winevdm kcfg16 A B
0168:trace:winevdm:main GetCommandLine = 'winevdm kcfg16 A B ' 0168:trace:winevdm:main appname = 'C:\windows\system32\kcfg16.exe' 0168:trace:winevdm:main cmdline = 'A B' 0168:trace:winevdm:main argv[0]: 'winevdm' 0168:trace:winevdm:main argv[1]: 'kcfg16' 0168:trace:winevdm:main argv[2]: 'A' 0168:trace:winevdm:main argv[3]: 'B' => expected cmdline = 'A B '
winevdm use argv[] to recreate command line instead of using GetCommandLineA ; the problem is that you cannot recreate command line from argv because information is lost when argv is created Need to parse GetCommandLineA to create cmdline for w16 program
https://bugs.winehq.org/show_bug.cgi?id=57090
Guillermo Reisch guillere@adinet.com.uy changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |guillere@adinet.com.uy
--- Comment #2 from Guillermo Reisch guillere@adinet.com.uy --- Created attachment 77037 --> https://bugs.winehq.org/attachment.cgi?id=77037 [patch] winevdm: parse GetCommandLineA to create cmdline instead of argv
instead of recreate cmdline using argv[] keep count of parameters in winevdm and strip left parameters of getCommandLineA to create cmdline for win16 program. also rework in parsing parameters to allow future parameters.
https://bugs.winehq.org/show_bug.cgi?id=57090
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, win16