This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

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

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):

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


Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]