I added a call to GetCommadLine() to see what it returns. It correctly quotes the directory with spaces in it, so the caller of WinMain() should easily be able to handle it. Win95 does too.
>From "/home/cygusr" GetCommandLine() returns [C:\cygwin\home\bkash\prtcmdline\prtcmdline.exe arg1 arg] >From "/cygdrive/c/Documents and Settings/cygusr" GetCommandLine() returns ["c:\Documents and Settings\bkash\prtcmdline.exe" arg1 arg2] "Martin" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > here is the workaround we use in Ant build (which by the way outclasses > anything any make can do) > /cygdrive/c/Documents and Settings/cygusr //becomes > /cygdrive/c/DOCUME~1\cyguser //workaround for 95/98 inability to > handle spaces in directory name > > Martin > ----- Original Message ----- > From: "BB" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Friday, April 04, 2003 10:34 AM > Subject: Bug in GUI App WinMain Arguements > > > > I'm having a problem running a windows gui app with arguments from a > mounted > > directory if the Win32Path mounted to contains blanks. (i.e. mount -s -b > > "C:/foo bar" "/foobar"). It's not a mount specific problem because it also > > occurs if the directory has a space in it. Since mkpasswd defaulted my > home > > directory to "/cygdrive/c/Documents and Settings/cygusr", I am assuming > > Cygwin supports directories with spaces in them. I have included a small > > program that illustrates the bug. > > > > By the way, I'm running on XP with the latest version of Cygwin newly > > installed. > > > > Also, according to the "Cygwin Users Guide", I have included the following > > line in the code. > > WinMainCRTStartup() { mainCRTStartup(); } > > It doesnt seem to be called. Is the User Guide correct? The same problem > > occurs if I omit the line and use the "-e _mainCRTStartup" as suggested in > > the User Guide. > > > > Any suggestions? > > BB. > > > > Assuming the program listed below (prtcmdline.exe) is in > > "/cygdrive/c/Documents and Settings/cygusr"... > > > > $ cd ~ > > $ pwd > > /cygdrive/c/Documents and Settings/cygusr > > $ ./prtcmdline arg1 arg2 | tail - > > default > > and Settings\cygusr\prtcmdline.exe" arg1 arg2 << wrong > > $ cp prtcmdline.exe /home/cygusr > > $ /home/cygusr/prtcmdline arg1 arg2 | tail - > > default > > arg1 arg2 <<right > > $ > > > > /****************************************************/ > > /* prtcmdline.c */ > > /* gcc -mwindows prtcmdline.c -o prtcmdline.exe */ > > /****************************************************/ > > #include <windows.h> > > #include <stdio.h> > > > > char *gstr = "default\r"; > > > > WinMainCRTStartup() > > { > > gstr = "WinMainCRTStartup() called\r"; > > mainCRTStartup(); > > } > > > > int APIENTRY WinMain(HINSTANCE hInstance, > > HINSTANCE hPrevInstance, > > LPSTR lpCmdLine, > > int nCmdShow) > > { > > puts(gstr); > > puts(lpCmdLine); > > return 0; > > } > > /****************************************************/ > > > > > > > > > > > > > > > > -- > > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > Bug reporting: http://cygwin.com/bugs.html > > Documentation: http://cygwin.com/docs.html > > FAQ: http://cygwin.com/faq/ > > > > > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/