Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Wed, 12 Jan 2005 22:42:48 -0800 From: Yitzchak Scott-Thoennes To: cygwin AT cygwin DOT com Subject: cygwin programs called from non-cygwin programs mauling \" in args Message-ID: <20050113064248.GA2416@efn.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Organization: bs"d X-IsSubscribed: yes Given a simple child process that prints its argument, and a parent that execs it passing a\"b\"c, trying combinations of cygwin and non- cygwin parent and child shows inconsistency in what's received: $ cat child.c #include int main(int argc, char **argv) { printf("[%s]\n", argv[1]); return 0; } $ cat parent.c #include int main(int argc, char **argv) { char *args[] = { argv[1], "a\\\"b\\\"c", 0}; execv( argv[1], args); return 1; } $ gcc -mno-cygwin -Wall child.c -o nocygchild $ 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 $ gcc -Wall parent.c -o cygparent $ ./cygparent cygchild [a\"b\"c] $ ./cygparent nocygchild [a\"b\"c] $ ./nocygparent cygchild [a\b"c] $ ./nocygparent nocygchild [a"b"c] The a\b"c definitely looks like something going wrong. (This is breaking things for me when using gcc from a non-cygwin make program.) -- 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/