Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)

Charles Wilson cygwin@cwilson.fastmail.fm
Wed Jul 17 14:02:00 GMT 2013


On 7/17/2013 8:59 AM, Corinna Vinschen wrote:
> This never works, even in any other directory.  It's the same problem
> which disallows checkX to work, as reported in
> http://cygwin.com/ml/cygwin/2013-07/msg00326.html
>
> The cause is an optimization when calling cygwin executables.  So far,
> Cygwin executables got their arguments via mmeory copy as well as via
> the single-line cmdline argument of CreateProcess.  We removed the
> latter since it was never meant to work that way in the first place.
>
> Unfortunately it turns out that run/run2/checkX are Cygwin executables
> which don't have a main routine, but rather a WinMain routine.  The
> latter has a single cmdline argument, which is generated via
> GetCommandLine().  But since Cygwin executables get no single-line
> command line anymore, this stopped working.

This is a pretty unusual situation. I don't know of any other tool -- 
except perhaps the old frankenstein half-cygwin-half-win32 tclsh.exe and 
wish.exe -- that does this, outside of run, run2, and checkX.  All of 
which are cygwin-specific (or, at least, cygwin + mingw specific).

Could we add a new cygwin_internal routine that triggers the allocation, 
creation and return of a suitable single-line command?  Then run & 
friends could do (pseudo-code):

WinMain()
{
    LPCSTR s = GetCommandLine()
#ifdef __CYGWIN__
    if s empty
       s = (LPCSTR) cygwin_internal(CW_WIN32_COMMAND_LINE)
#endif

--
Chuck


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list