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