delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/02/18/22:58:45

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00
X-Spam-Check-By: sourceware.org
Message-ID: <644936.8008.qm@web88301.mail.re4.yahoo.com>
X-RocketYMMF: ilatypov
Date: Thu, 18 Feb 2010 19:58:35 -0800 (PST)
From: Ilguiz Latypov <ilatypov AT infradead DOT org>
Subject: Re: CreateProcess() - executed program gets different argument depending if it's compiled with gcc (cygwin) or cl (VS)?
To: cygwin AT cygwin DOT com
Cc: Piotr Krukowiecki <piotr DOT krukowiecki DOT news AT gmail DOT com>
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com




> 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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019