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


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