Subject: Re: cygwin programs called from non-cygwin programs mauling \" in args
From: Yitzchak Scott-Thoennes <[email-masked]>
To: [email-masked]
Date: Thu, 20 Jan 2005 00:20:20 -0800

On Wed, Jan 19, 2005 at 09:08:13PM -0600, Gary R. Van Sickle wrote:
> 
> > -----Original Message-----
> > From: [email-masked] 
> > [mailto:[email-masked]] On Behalf Of Yitzchak Scott-Thoennes
> > Sent: Wednesday, January 19, 2005 5:34 PM
> > To: [email-masked]
> > Subject: Re: cygwin programs called from non-cygwin programs 
> > mauling \" in args
> > 
> > On Wed, Jan 12, 2005 at 10:42:48PM -0800, Yitzchak 
> > Scott-Thoennes wrote:
> > > $ cat child.c
> > > #include <stdio.h>
> > > int main(int argc, char **argv)
> > > {
> > >   printf("[%s]\n", argv[1]);
> > >   return 0;
> > > }
> > > 
> > > $ cat parent.c
> > > #include <unistd.h>
> > > int main(int argc, char **argv) {
> > >   char *args[] = { argv[1], "a\\\"b\\\"c", 0};
> > >   execv( argv[1], args);
> > >   return 1;
> > > }
> > > 
> > > $ gcc -mno-cygwin -Wall parent.c -o nocygparent
> > > parent.c: In function `main':
> > > parent.c:4: warning: passing arg 2 of `execv' from incompatible 
> > > pointer type
> > > 
> > > $ gcc -Wall child.c -o cygchild
> > > 
> > > $ ./nocygparent cygchild
> > > [a\b"c]
> > 
> > Can anybody else confirm this?
> > 
> 
> Lessee....
> 
> ...sorta.  I get:
> 
> "
> $ ./nocygparent cygchild
> 
> ~
> $ [a\b"c]
> "
> 
> And then it sits there waiting for input.  When I hit enter it quits and
> brings me back to the prompt.  This is with snapshot 20050116 and gcc (GCC)
> 3.4.1 (cygming special).
> 
> What happens if you correct the warning?

The error is the fault of the mingw headers being incorrect for exec*,
but makes no difference.  (SuSv3 whines at length about why the headers
need to be as they should be.)

See the $ before the [ there?  That's a shell prompt.  The program already
ended, but the output is a little scrambled (which seems to happen a lot
when there are child processes of late).  Not related to the problem I'm
describing.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/