This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: CreateProcess() - executed program gets different argument depending if it's compiled with gcc (cygwin) or cl (VS)?
- From: Ilguiz Latypov <ilatypov at infradead dot org>
- To: cygwin at cygwin dot com
- Cc: Piotr Krukowiecki <piotr dot krukowiecki dot news at gmail dot com>
- Date: Thu, 18 Feb 2010 19:58:35 -0800 (PST)
- Subject: Re: CreateProcess() - executed program gets different argument depending if it's compiled with gcc (cygwin) or cl (VS)?
> Thanks to your createprocess.c/dumpargs.c pair, I could figure the existing
> Cygwin's parsing without looking into its source code. It turned to ignore the
> escaping power of a bare (unquoted) backslash when it was followed by a double
> quote, which is against both MSVC and Bash rules.
Forgot to mention that in the comparison chart.
Bare backslashes Bare backslashes A quoted backslash A quoted backslash
not followed by a followed by a not followed by a followed by a
double quote double quote: special character special character
pairs with
next backslash
pairs with the
double quote
MSVC regular yes yes regular regular
Bash protecting yes yes regular protecting
Cygwin regular yes no regular protecting
> So I guess the confusion remains as to why (a) C != M and (b) C != B.
Due to the possibility of receiving the command line by both Windows native and Cygwin application, the only question is why C != M.
--
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