Thanks, bjornr, however your suggestion to try: wine "C:\Program Files\intuit\qbtimer\qbtimer.exe" gave the same result as the other command lines I tried. All invoke the qbtimer program and all get the same error from qbtimer: Can't find timer file "Files/intuit/qbtimer.exe" ... So wine properly finds the qbtimer.exe file. The error arises after the program is invoked and it tries to examine its own parameters. Are you using the same version of Wine as I am? I have codeweavers-wine-20011108-5.i386.rpm under Redhat 7.1, and a native Win98 partition. I suspect this problem may be related to the different quoting rules between bash and Windows C library that has been discussed in the context of cygwin bash and NT emacs spawning win32 programs. See: http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting It may not be a bug in this version of Wine, but so far I have been unable to come up with a recipe that both allows Wine to find the executable from a path containing a space and also allows the Windows application to correctly interpret its command line options. Carol Lerche
If it's a parse problem it could also be the qbtimer program attempting to parse the command line, just for the nerd... have you tried locating the program in a 8.3 compliant path, i.d. C:\intuit\qbtimer\qbtimer.exe" ? Carol Farlow Lerche wrote:> Thanks, bjornr, however your suggestion to try: > > wine "C:\Program Files\intuit\qbtimer\qbtimer.exe" > > gave the same result as the other command lines I tried. > > All invoke the qbtimer program and all get the same error from qbtimer: > Can't find timer file "Files/intuit/qbtimer.exe" ... > > So wine properly finds the qbtimer.exe file. The error arises after > the program is invoked and it tries to examine its own parameters. > > Are you using the same version of Wine as I am? I have > codeweavers-wine-20011108-5.i386.rpm under Redhat 7.1, and a native > Win98 partition. > > I suspect this problem may be related to the different quoting rules > between bash and Windows C library that has been discussed in the > context of cygwin bash and NT emacs spawning win32 programs. See: > > http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting > > It may not be a bug in this version of Wine, but so far I have been > unable to come up with a recipe that both allows Wine to find the > executable from a path containing a space and also allows the Windows > application to correctly interpret its command line options. > > Carol Lerche > > > _______________________________________________ > wine-users mailing list > wine-users@winehq.com > http://www.winehq.com/mailman/listinfo/wine-users > >
On Tue, 29 Jan 2002, Carol Farlow Lerche wrote:> Thanks, bjornr, however your suggestion to try: > > wine "C:\Program Files\intuit\qbtimer\qbtimer.exe" > > gave the same result as the other command lines I tried. > > All invoke the qbtimer program and all get the same error from qbtimer: > Can't find timer file "Files/intuit/qbtimer.exe" ... > > So wine properly finds the qbtimer.exe file. The error arises after > the program is invoked and it tries to examine its own parameters. > > Are you using the same version of Wine as I am? I have > codeweavers-wine-20011108-5.i386.rpm under Redhat 7.1, and a native > Win98 partition. >...> > It may not be a bug in this version of Wine, but so far I have been > unable to come up with a recipe that both allows Wine to find the > executable from a path containing a space and also allows the Windows > application to correctly interpret its command line options. > > Carol LercheIt might be. It looks to me as if the current Wine quotes the command line appropriately - but AFAICT, a windows program doesn't get argv[0] on the command line, so I guess the C runtime startfile has to construct argc and argv from GetModuleFilename and the command line or so. IIRC, somebody has worked on commandline quoting recently. You could try wine -dll msvcrt=b 'C:\Program Files\intuit\qbtimer\qbtimer.exe' or wine -dll crtdll=b 'C:\Program Files\intuit\qbtimer\qbtimer.exe' depending which one the app uses, but I don't hold out much hope the builtin msvcrt is quite up to it yet. or try wine --debugmsg +relay \ 'C:\Program Files\intuit\qbtimer\qbtimer.exe' \ 2>&1 |tee ~/logfile to try to see where the app is trying to get the filename from and we can work from there, maybe. Those \ only serve to continue the command to the next line so it doesn't wrap in the mail. Lawson
On Tue, 29 Jan 2002, Carol Farlow Lerche wrote:> I suspect this problem may be related to the different quoting rules > between bash and Windows C library that has been discussed in the > context of cygwin bash and NT emacs spawning win32 programs. See: > > http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting > > It may not be a bug in this version of Wine, but so far I have been > unable to come up with a recipe that both allows Wine to find the > executable from a path containing a space and also allows the Windows > application to correctly interpret its command line options. > > Carol Lerche >But you are not needing to quote a quote here. I compiled the little test program from that with lcc-win: #include <stdio.h> main(int argc, char **argv) { int i; for (i = 0; i < argc; i++) printf("arg %d: /%s/\n", i, argv[i]); } and it looks to me as if command line handling is OK, at least with the current Wine using Wine's builtin msvcrt: [whit@giftie cmdl]$ wine 'c:\Program Files\Juno\bin\cmdl.exe' oops "hi there" arg 0: /c:\Program Files\Juno\bin\cmdl.exe/ arg 1: /oops/ arg 2: /hi there/ [whit@giftie cmdl]$ tty /dev/vc/3 [whit@giftie cmdl]$ Lawson
> ...have you tried locating > the program in a 8.3 compliant path, > i.d. C:\intuit\qbtimer\qbtimer.exe"Yes, that is, in effect, my current workaround -- I defined a new Wine volume rooted in Program Files (many pesky programs are in this tree). As for the behavior of qbtimer itself, I believe most Windows programs rely on the runtime environment of their compiler to parse the command line. Certainly programs written in C do this. (See the discussion I pointed to in my last mail for hairy details.) Also, one of the things I tried was to use the exact command line as found in the Windows shortcut to qbtimer that was working perfectly on the Windows desktop, prefixed by wine. Same error in Wine: Can't find timer file "Files/intuit/qbtimer.exe" ... Carol Lerche
"Carol Farlow Lerche" <cafl@msbit.com> wrote in message news:200201300302.g0U325g05144@mercury.msbit.com...> Thanks, bjornr, however your suggestion to try: > > wine "C:\Program Files\intuit\qbtimer\qbtimer.exe" > > gave the same result as the other command lines I tried. > > All invoke the qbtimer program and all get the same error from qbtimer: > Can't find timer file "Files/intuit/qbtimer.exe" ... > > So wine properly finds the qbtimer.exe file. The error arises after > the program is invoked and it tries to examine its own parameters.OK. So here's my contribution. I have a little test program that I threw together for investigating the DrawTextEx function. (You can find it in the patches but Alexandre hasn't accepted it yet). It takes input from the szCommandLine passed to WinMain. Under windows I can pass a set of arguments, including a string enclosed in quotes. I use those quotes to recognise which part of szCommandLine is "the string". (Yes, I know it's lazy and bad argument processing). However under Wine the quotes don't get through and if I escape them with \ then the \ goes through too (which messes up "the string"). I haven't looked yet but there is something weird in there. I guess one problem is that the quotes will be removed by the shell before even reaching Wine. Bill