* Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
@ 2013-07-16 17:39 Andrey Repin
2013-07-16 18:02 ` Andrey Repin
2013-07-17 13:36 ` Corinna Vinschen
0 siblings, 2 replies; 17+ messages in thread
From: Andrey Repin @ 2013-07-16 17:39 UTC (permalink / raw)
To: All
Greetings, All!
I'm trying to execute a script that was working fine until recent update.
It doesn't crash, just, for some reason, trim the last component of a path.
In a nutshell, the issue is this:
$ mkdir "/a b"
$ cd "/a b"
$ ls -l "$SYSTEMROOT/System32/notepad.exe"
(just to confirm that the file actually exists)
$ run "$SYSTEMROOT/System32/notepad.exe"
Error pops up:
---------------------------
Run.exe
---------------------------
Error: could not start C:\Programs\CygWin\a b
---------------------------
OK
---------------------------
$ cygcheck.exe -v run
Found: C:\Programs\CygWin\bin\run.exe
Found: C:\Programs\CygWin\bin\run.exe
C:\Programs\CygWin\bin\run.exe - os=4.0 img=1.0 sys=4.0
C:\Programs\CygWin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
"cygwin1.dll" v0.0 ts=2013-07-15 11:17
C:\WINDOWS\system32\KERNEL32.dll - os=5.1 img=5.1 sys=4.0
"KERNEL32.dll" v0.0 ts=2009-03-21 12:36
C:\WINDOWS\system32\ntdll.dll - os=5.1 img=5.1 sys=4.10
"ntdll.dll" v0.0 ts=2010-12-09 13:38
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\SHELL32.DLL - os=5.1 img=5.1 sys=4.10
"SHELL32.dll" v0.0 ts=2012-06-08 14:41
C:\WINDOWS\system32\ADVAPI32.dll - os=5.1 img=5.1 sys=4.0
"ADVAPI32.dll" v0.0 ts=2009-02-06 11:02
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\RPCRT4.dll - os=5.1 img=5.1 sys=4.10
"RPCRT4.dll" v0.0 ts=2010-08-13 14:32
C:\WINDOWS\system32\ADVAPI32.dll (recursive)
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\Secur32.dll - os=5.1 img=5.1 sys=4.0
"Secur32.dll" v0.0 ts=2009-06-24 13:10
C:\WINDOWS\system32\ADVAPI32.dll (recursive)
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\GDI32.dll - os=5.1 img=5.1 sys=4.10
"GDI32.dll" v0.0 ts=2008-10-22 17:52
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\USER32.dll - os=5.1 img=5.1 sys=4.0
"USER32.dll" v0.0 ts=2008-04-13 20:22
C:\WINDOWS\system32\GDI32.dll (recursive)
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\msvcrt.dll - os=5.1 img=5.1 sys=4.0
"msvcrt.dll" v0.0 ts=2008-04-13 17:41
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\ntdll.dll (already done)
C:\WINDOWS\system32\RPCRT4.dll (already done)
C:\WINDOWS\system32\SHLWAPI.dll - os=5.1 img=5.1 sys=4.0
"SHLWAPI.dll" v0.0 ts=2009-12-07 13:39
C:\WINDOWS\system32\ADVAPI32.dll (already done)
C:\WINDOWS\system32\GDI32.dll (already done)
C:\WINDOWS\system32\KERNEL32.dll (already done)
C:\WINDOWS\system32\msvcrt.dll (already done)
C:\WINDOWS\system32\USER32.dll (already done)
C:\WINDOWS\system32\USER32.dll (already done)
C:\WINDOWS\system32\USER32.dll (already done)
$ cygcheck.exe -f /bin/run.exe
run-1.2.0-1
$ cygcheck.exe -c run
Cygwin Package Information
Package Version Status
run 1.2.0-1 OK
--
WBR,
Andrey Repin (anrdaemon@freemail.ru) 16.07.2013, <20:12>
Sorry for my terrible english...
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-16 17:39 Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21) Andrey Repin
@ 2013-07-16 18:02 ` Andrey Repin
2013-07-17 13:36 ` Corinna Vinschen
1 sibling, 0 replies; 17+ messages in thread
From: Andrey Repin @ 2013-07-16 18:02 UTC (permalink / raw)
To: All
Greetings, All!
> I'm trying to execute a script that was working fine until recent update.
> It doesn't crash, just, for some reason, trim the last component of a path.
Sorry, it doesn't "trim" anything. The line was from earlier guess, before I
started to run more tests.
> In a nutshell, the issue is this:
> $ mkdir "/a b"
> $ cd "/a b"
> $ ls -l "$SYSTEMROOT/System32/notepad.exe"
> (just to confirm that the file actually exists)
> $ run "$SYSTEMROOT/System32/notepad.exe"
> Error pops up:
> ---------------------------
> Run.exe
> ---------------------------
> Error: could not start C:\Programs\CygWin\a b
> ---------------------------
> OK
> ---------------------------
> $ cygcheck.exe -f /bin/run.exe
> run-1.2.0-1
> $ cygcheck.exe -c run
> Cygwin Package Information
> Package Version Status
> run 1.2.0-1 OK
Reverting to previous version of package doesn't help.
--
WBR,
Andrey Repin (anrdaemon@freemail.ru) 16.07.2013, <21:02>
Sorry for my terrible english...
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-16 17:39 Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21) Andrey Repin
2013-07-16 18:02 ` Andrey Repin
@ 2013-07-17 13:36 ` Corinna Vinschen
2013-07-17 14:02 ` Charles Wilson
2013-07-17 14:10 ` Andrey Repin
1 sibling, 2 replies; 17+ messages in thread
From: Corinna Vinschen @ 2013-07-17 13:36 UTC (permalink / raw)
To: cygwin
On Jul 16 20:29, Andrey Repin wrote:
> Greetings, All!
>
> I'm trying to execute a script that was working fine until recent update.
> It doesn't crash, just, for some reason, trim the last component of a path.
>
> In a nutshell, the issue is this:
>
> $ mkdir "/a b"
> $ cd "/a b"
> $ ls -l "$SYSTEMROOT/System32/notepad.exe"
> (just to confirm that the file actually exists)
> $ run "$SYSTEMROOT/System32/notepad.exe"
> Error pops up:
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.
Stay tuned,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 13:36 ` Corinna Vinschen
@ 2013-07-17 14:02 ` Charles Wilson
2013-07-17 14:05 ` Corinna Vinschen
2013-07-17 14:10 ` Andrey Repin
1 sibling, 1 reply; 17+ messages in thread
From: Charles Wilson @ 2013-07-17 14:02 UTC (permalink / raw)
To: The Cygwin Mailing List
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:02 ` Charles Wilson
@ 2013-07-17 14:05 ` Corinna Vinschen
2013-07-17 14:09 ` Charles Wilson
0 siblings, 1 reply; 17+ messages in thread
From: Corinna Vinschen @ 2013-07-17 14:05 UTC (permalink / raw)
To: cygwin
On Jul 17 09:36, Charles Wilson wrote:
> 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
That should be unnecessary. The culprit here is the default main
routine in cygwin's libcmain.c, which calls WinMain if the executable
doesn't provide its own main.
It doesn't construct the single-line commandline from argv, but rather
it calls GetCommandLineÌ. This, obviously, creates an empty command line
for WinMain.
So, the actual fix is to change libcmain's main() routine to create
WinMain's cmdline arg from argc/argv.
However, either way, you will have to rebuild run/run2 for both
architectures since libcmain.c is linked statically to the executable.
So, if we do it this way, we should probably upload a new Cygwin DLL
with the patched libcmain ASAP, so you can rebuild against the new
libcmain. Or, actually it would be better you would test this as soon
as we made the patch, *before* releasing a new Cygwin DLL.
Anyway, if we do it that way, let's hope no other tool is doing the
same...
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:05 ` Corinna Vinschen
@ 2013-07-17 14:09 ` Charles Wilson
2013-07-17 14:33 ` Corinna Vinschen
0 siblings, 1 reply; 17+ messages in thread
From: Charles Wilson @ 2013-07-17 14:09 UTC (permalink / raw)
To: The Cygwin Mailing List
On 7/17/2013 9:45 AM, Corinna Vinschen wrote:
> On Jul 17 09:36, Charles Wilson wrote:
>> 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):
> That should be unnecessary. The culprit here is the default main
> routine in cygwin's libcmain.c, which calls WinMain if the executable
> doesn't provide its own main.
>
> It doesn't construct the single-line commandline from argv, but rather
> it calls GetCommandLineÌ. This, obviously, creates an empty command line
> for WinMain.
>
> So, the actual fix is to change libcmain's main() routine to create
> WinMain's cmdline arg from argc/argv.
Ack.
> However, either way, you will have to rebuild run/run2 for both
> architectures since libcmain.c is linked statically to the executable.
Right.
> So, if we do it this way, we should probably upload a new Cygwin DLL
> with the patched libcmain ASAP, so you can rebuild against the new
> libcmain. Or, actually it would be better you would test this as soon
> as we made the patch, *before* releasing a new Cygwin DLL.
NP. Both of those packages have been recently rebuilt, so they are "up
to date" with regard to the (relatively recent) w32api and cygport
improvements; it's just a simply rebuild with no other changes.
> Anyway, if we do it that way, let's hope no other tool is doing the
> same...
Seems pretty unlikely to me. Most cygwin apps derive from a unix or
traditional programming model heritage, and use main(). Very few would
seem to derive from a Win32 heritage with WinMain() (why bother? just
run the native program instead of porting a windows app to cygwin).
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 13:36 ` Corinna Vinschen
2013-07-17 14:02 ` Charles Wilson
@ 2013-07-17 14:10 ` Andrey Repin
2013-07-17 14:20 ` Corinna Vinschen
1 sibling, 1 reply; 17+ messages in thread
From: Andrey Repin @ 2013-07-17 14:10 UTC (permalink / raw)
To: Corinna Vinschen
Greetings, Corinna Vinschen!
> On Jul 16 20:29, Andrey Repin wrote:
>> Greetings, All!
>>
>> I'm trying to execute a script that was working fine until recent update.
>> It doesn't crash, just, for some reason, trim the last component of a path.
>>
>> In a nutshell, the issue is this:
>>
>> $ mkdir "/a b"
>> $ cd "/a b"
>> $ ls -l "$SYSTEMROOT/System32/notepad.exe"
>> (just to confirm that the file actually exists)
>> $ run "$SYSTEMROOT/System32/notepad.exe"
>> Error pops up:
> 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
Now, it doesn't work >.> Worked before, while I was running tests.
What magic is dat?
> 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.
> Stay tuned,
I am. In the meantime, I had to use
cmd /C start "" "$( cygpath -alm "$CWD/..." )"
--
WBR,
Andrey Repin (anrdaemon@freemail.ru) 17.07.2013, <17:52>
Sorry for my terrible english...
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:10 ` Andrey Repin
@ 2013-07-17 14:20 ` Corinna Vinschen
2013-07-17 20:45 ` Christopher Faylor
0 siblings, 1 reply; 17+ messages in thread
From: Corinna Vinschen @ 2013-07-17 14:20 UTC (permalink / raw)
To: cygwin
On Jul 17 17:54, Andrey Repin wrote:
> Greetings, Corinna Vinschen!
>
> > On Jul 16 20:29, Andrey Repin wrote:
> >> Greetings, All!
> >>
> >> I'm trying to execute a script that was working fine until recent update.
> >> It doesn't crash, just, for some reason, trim the last component of a path.
> >>
> >> In a nutshell, the issue is this:
> >>
> >> $ mkdir "/a b"
> >> $ cd "/a b"
> >> $ ls -l "$SYSTEMROOT/System32/notepad.exe"
> >> (just to confirm that the file actually exists)
> >> $ run "$SYSTEMROOT/System32/notepad.exe"
> >> Error pops up:
>
> > 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
>
> Now, it doesn't work >.> Worked before, while I was running tests.
> What magic is dat?
None. Never works means, it's independent of the dir name of the CWD.
It just never works. In 1.7.21.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:09 ` Charles Wilson
@ 2013-07-17 14:33 ` Corinna Vinschen
2013-07-17 14:54 ` Charles Wilson
0 siblings, 1 reply; 17+ messages in thread
From: Corinna Vinschen @ 2013-07-17 14:33 UTC (permalink / raw)
To: cygwin
On Jul 17 10:02, Charles Wilson wrote:
> On 7/17/2013 9:45 AM, Corinna Vinschen wrote:
> >On Jul 17 09:36, Charles Wilson wrote:
> >>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):
>
> >That should be unnecessary. The culprit here is the default main
> >routine in cygwin's libcmain.c, which calls WinMain if the executable
> >doesn't provide its own main.
> >
> >It doesn't construct the single-line commandline from argv, but rather
> >it calls GetCommandLineÌ. This, obviously, creates an empty command line
> >for WinMain.
> >
> >So, the actual fix is to change libcmain's main() routine to create
> >WinMain's cmdline arg from argc/argv.
>
> Ack.
>
> >However, either way, you will have to rebuild run/run2 for both
> >architectures since libcmain.c is linked statically to the executable.
>
> Right.
>
> >So, if we do it this way, we should probably upload a new Cygwin DLL
> >with the patched libcmain ASAP, so you can rebuild against the new
> >libcmain. Or, actually it would be better you would test this as soon
> >as we made the patch, *before* releasing a new Cygwin DLL.
>
> NP. Both of those packages have been recently rebuilt, so they are
> "up to date" with regard to the (relatively recent) w32api and
> cygport improvements; it's just a simply rebuild with no other
> changes.
>
> >Anyway, if we do it that way, let's hope no other tool is doing the
> >same...
>
> Seems pretty unlikely to me. Most cygwin apps derive from a unix or
> traditional programming model heritage, and use main(). Very few
> would seem to derive from a Win32 heritage with WinMain() (why
> bother? just run the native program instead of porting a windows app
> to cygwin).
Uhm. In that case, if ew *really* think your tools are the only
affected ones, Why do we bother to fix libcmain.c? Can't you then
simply provide your own main() in case of building for Cygwin?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:33 ` Corinna Vinschen
@ 2013-07-17 14:54 ` Charles Wilson
2013-07-17 15:39 ` Corinna Vinschen
0 siblings, 1 reply; 17+ messages in thread
From: Charles Wilson @ 2013-07-17 14:54 UTC (permalink / raw)
To: The Cygwin Mailing List
On 7/17/2013 10:10 AM, Corinna Vinschen wrote:
> Uhm. In that case, if ew *really* think your tools are the only
> affected ones, Why do we bother to fix libcmain.c? Can't you then
> simply provide your own main() in case of building for Cygwin?
Perhaps, but I'm not sure of the ramifications. I think if you have a
main() then you're going to get STD_HANDLES. Plus there's the whole
concern about launching run[2].exe itself without a cmdbox, when it is
used as a shortcut target.
This whole entrypoint thing is tied up in that, or at least it used to
be. Now, that may ONLY apply to the mingw[64]-compiled version, in
which case I could do a
#ifdef __CYGWIN__
int main (int argc, char** argv)
{
return realmain(argc, argv);
}
#endif
and avoid the -e WinMain@16 link argument. (Except I think I arrange to
only do -e WinMain@16 on mingw...hmm...)
If you look closely at WinMain, it basically parses the result from
GetCommandLine() into argc,argv, and then delegates. The only
conceivable reason to do that, rather than just have a main(), was if
you NEED to use WinMain() as the entry point for some other reason. Like
ensuring that you "work" when compiled as a non-console app and don't
pop up a dosbox...
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:54 ` Charles Wilson
@ 2013-07-17 15:39 ` Corinna Vinschen
2013-07-17 15:52 ` Charles Wilson
0 siblings, 1 reply; 17+ messages in thread
From: Corinna Vinschen @ 2013-07-17 15:39 UTC (permalink / raw)
To: cygwin
On Jul 17 10:20, Charles Wilson wrote:
> On 7/17/2013 10:10 AM, Corinna Vinschen wrote:
> >Uhm. In that case, if ew *really* think your tools are the only
> >affected ones, Why do we bother to fix libcmain.c? Can't you then
> >simply provide your own main() in case of building for Cygwin?
>
> Perhaps, but I'm not sure of the ramifications. I think if you have
> a main() then you're going to get STD_HANDLES. Plus there's the
> whole concern about launching run[2].exe itself without a cmdbox,
> when it is used as a shortcut target.
In that case, the application gets the command line via GetCommandLine,
which in turn is converted to argc,argv by the Cygwin DLL ebfore calling
main.
> This whole entrypoint thing is tied up in that, or at least it used
> to be. Now, that may ONLY apply to the mingw[64]-compiled version,
> in which case I could do a
>
> #ifdef __CYGWIN__
> int main (int argc, char** argv)
> {
> return realmain(argc, argv);
> }
> #endif
Or
#ifdef __CYGWIN__
int main (int argc, char** argv)
#else
int realmain (int argc, char** argv)
#endif
> and avoid the -e WinMain@16 link argument. (Except I think I arrange
> to only do -e WinMain@16 on mingw...hmm...)
Can you quickly check if that works? If so, we have a bit less pressure
to fix libcmain.
> If you look closely at WinMain, it basically parses the result from
> GetCommandLine() into argc,argv, and then delegates.
Yes, I saw that while debugging.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 15:39 ` Corinna Vinschen
@ 2013-07-17 15:52 ` Charles Wilson
2013-07-17 16:18 ` Charles Wilson
0 siblings, 1 reply; 17+ messages in thread
From: Charles Wilson @ 2013-07-17 15:52 UTC (permalink / raw)
To: The Cygwin Mailing List
On 7/17/2013 10:33 AM, Corinna Vinschen wrote:
> Can you quickly check if that works? If so, we have a bit less pressure
> to fix libcmain.
Seems to work for run2.exe. Stay tuned for checkX.exe and run.exe.
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 15:52 ` Charles Wilson
@ 2013-07-17 16:18 ` Charles Wilson
2013-07-18 2:26 ` Charles Wilson
2013-07-25 2:38 ` Charles Wilson
0 siblings, 2 replies; 17+ messages in thread
From: Charles Wilson @ 2013-07-17 16:18 UTC (permalink / raw)
To: The Cygwin Mailing List
On 7/17/2013 10:54 AM, Charles Wilson wrote:
> On 7/17/2013 10:33 AM, Corinna Vinschen wrote:
>> Can you quickly check if that works? If so, we have a bit less pressure
>> to fix libcmain.
>
> Seems to work for run2.exe. Stay tuned for checkX.exe and run.exe.
I've uploaded run2-0.4.2-2 as a test release for both 32bit and 64bit.
However, run is more complicated; most of the application code is
actually in WinMain. I've been meaning to refactor it more along the
lines of run2, but never got around to it. Looks like I now have a
reason...but it'll take a bit longer to do, and I won't really have time
to address it until Saturday.
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 14:20 ` Corinna Vinschen
@ 2013-07-17 20:45 ` Christopher Faylor
2013-07-17 20:46 ` Corinna Vinschen
0 siblings, 1 reply; 17+ messages in thread
From: Christopher Faylor @ 2013-07-17 20:45 UTC (permalink / raw)
To: cygwin
On Wed, Jul 17, 2013 at 04:09:25PM +0200, Corinna Vinschen wrote:
>None. Never works means, it's independent of the dir name of the CWD.
>It just never works. In 1.7.21.
But, just wait until next Thursday...
cgf
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 20:45 ` Christopher Faylor
@ 2013-07-17 20:46 ` Corinna Vinschen
0 siblings, 0 replies; 17+ messages in thread
From: Corinna Vinschen @ 2013-07-17 20:46 UTC (permalink / raw)
To: cygwin
On Jul 17 14:45, Christopher Faylor wrote:
> On Wed, Jul 17, 2013 at 04:09:25PM +0200, Corinna Vinschen wrote:
> >None. Never works means, it's independent of the dir name of the CWD.
> >It just never works. In 1.7.21.
>
> But, just wait until next Thursday...
I'm starting to be scared of Thursday. I have to talk this through
with my therapist. Or with my cat... if I knew where she is.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 16:18 ` Charles Wilson
@ 2013-07-18 2:26 ` Charles Wilson
2013-07-25 2:38 ` Charles Wilson
1 sibling, 0 replies; 17+ messages in thread
From: Charles Wilson @ 2013-07-18 2:26 UTC (permalink / raw)
To: cygwin
On 7/17/2013 11:52 AM, Charles Wilson wrote:
> On 7/17/2013 10:54 AM, Charles Wilson wrote:
>> On 7/17/2013 10:33 AM, Corinna Vinschen wrote:
>>> Can you quickly check if that works? If so, we have a bit less pressure
>>> to fix libcmain.
>>
>> Seems to work for run2.exe. Stay tuned for checkX.exe and run.exe.
>
> I've uploaded run2-0.4.2-2 as a test release for both 32bit and 64bit.
>
> However, run is more complicated; most of the application code is
> actually in WinMain. I've been meaning to refactor it more along the
> lines of run2, but never got around to it. Looks like I now have a
> reason...but it'll take a bit longer to do, and I won't really have time
> to address it until Saturday.
Until then, users of run.exe affected by this problem can use run2.exe
(today's new version) with almost the same effect:
1. create an XML file describing the program you want to launch. Here's
an example:
<?xml version="1.0" encoding="us-ascii"?>
<Run2Config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="run2.xsd">
<SelfOptions />
<Global>
<Environment />
<Target filename="/usr/bin/mintty.exe" startin="~">
<Arg>-e /bin/bash -!-login</Arg>
</Target>
</Global>
</Run2Config>
2. Make sure all the arguments you want to pass to the target program
are represented in (the|one of the) <Arg /> elements. Be sure that all
sequences of two '-' characters are replaced by -!- (see -!-login, above).
3. Create a shortcut with the following target:
C:\cygwin\bin\run2.exe /cygwin/path/to/your/xml/file
Enjoy. (Try
C:\cygwin\bin\run2.exe --debug=3 --notty /cygwin/path/to/your/xml/file
if it doesn't work).
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21)
2013-07-17 16:18 ` Charles Wilson
2013-07-18 2:26 ` Charles Wilson
@ 2013-07-25 2:38 ` Charles Wilson
1 sibling, 0 replies; 17+ messages in thread
From: Charles Wilson @ 2013-07-25 2:38 UTC (permalink / raw)
To: The Cygwin Mailing List
On 7/17/2013 11:52 AM, Charles Wilson wrote:
> On 7/17/2013 10:54 AM, Charles Wilson wrote:
>> On 7/17/2013 10:33 AM, Corinna Vinschen wrote:
>>> Can you quickly check if that works? If so, we have a bit less pressure
>>> to fix libcmain.
>>
>> Seems to work for run2.exe. Stay tuned for checkX.exe and run.exe.
>
> I've uploaded run2-0.4.2-2 as a test release for both 32bit and 64bit.
>
> However, run is more complicated; most of the application code is
> actually in WinMain. I've been meaning to refactor it more along the
> lines of run2, but never got around to it. Looks like I now have a
> reason...but it'll take a bit longer to do, and I won't really have time
> to address it until Saturday.
run-1.3.0 should operate normally, on cygwin-1.7.21 or cygwin-1.7.22
(well, really, any version of cygwin-1.7.x) Note that this distribution
of run-1.3.0 (a) was compiled on cygwin-1.7.21, so it does not take
advantage of the compile-time fix provided by cygwin-1.7.22 [1], and (b)
on __CYGWIN__ it uses the main() entry point rather than WinMain@16, and
so does not access GetCommandLine() anyway (although it does use
GetCommandLine(), when built for mingw[64,.org] targets)
[1] http://cygwin.com/ml/cygwin/2013-07/msg00438.html
> - Added cygwin GetCommandLine wrappers which will allow Cygwin programs to
> (appear to) use the Windows command line functions.
--
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
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2013-07-24 22:46 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-16 17:39 Issue with run.exe and PWD with spaces since last update (Cygwin 1.7.21) Andrey Repin
2013-07-16 18:02 ` Andrey Repin
2013-07-17 13:36 ` Corinna Vinschen
2013-07-17 14:02 ` Charles Wilson
2013-07-17 14:05 ` Corinna Vinschen
2013-07-17 14:09 ` Charles Wilson
2013-07-17 14:33 ` Corinna Vinschen
2013-07-17 14:54 ` Charles Wilson
2013-07-17 15:39 ` Corinna Vinschen
2013-07-17 15:52 ` Charles Wilson
2013-07-17 16:18 ` Charles Wilson
2013-07-18 2:26 ` Charles Wilson
2013-07-25 2:38 ` Charles Wilson
2013-07-17 14:10 ` Andrey Repin
2013-07-17 14:20 ` Corinna Vinschen
2013-07-17 20:45 ` Christopher Faylor
2013-07-17 20:46 ` Corinna Vinschen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).