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