www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/08/16/12:15:14

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Date: Wed, 16 Aug 2000 12:14:28 -0400
From: Jonathan Kamens <jik AT kamens DOT brookline DOT ma DOT us>
Message-Id: <200008161614.e7GGESL28727@jik.kamens.brookline.ma.us>
To: drobinow AT dayton DOT adroit DOT com
CC: cygwin AT sourceware DOT cygnus DOT com
In-reply-to: <80575AFA5F0DD31197CE00805F650D7602CD62@wilber.adroit.com>
(drobinow AT dayton DOT adroit DOT com)
Subject: Re: cygwin1-20000811: exec*() quoting backslashes for args conta
ining spaces?
References: <80575AFA5F0DD31197CE00805F650D7602CD62 AT wilber DOT adroit DOT com>

>  From: "Robinow, David" <drobinow AT dayton DOT adroit DOT com>
>  Date: Wed, 16 Aug 2000 12:00:35 -0400
>  
>  You don't have a cygwin version of perl in your path.

This has nothing to do with Perl.  The mangling of the command-line
arguments is being done by Cygwin before it calls Perl.

You may perhaps be correct that the mangling only happens when Cygwin
is calling a non-Cygwin application, but that's not relevant to me.  I
*need* to be able to call non-Cygwin applications from Cygwin, and it
worked before, so it should work now.

In fact, after further testing, it does indeed appear that the
incorrect quoting is only occurring when Cygwin calls a non-Cygwin
application.  For example, this command behaves correctly (it prints a
newline followed by " foo"):

	/usr/bin/printf '\n foo'

whereas this command does not (it prints "\\foo bar", which is
incorrect in the same way that the Perl example I previously sent is
incorrect):

	cmd /c 'echo \foo bar'

>  Try the same command
>  from a dos box. You won't get what you think you should there either.

Well, yes, actually, I will.  Using DOS quoting instead of bash
quoting:

	C:\>perl c:/tmp/foo.pl "\foo bar" "\foobar"
	\foo bar
	\foobar

	C:\>

That is the expected, correct output.

>   I don't have a cygwin perl handy.  Anybody know how that works?
>   Did you have a cygwin perl on your b20 system?

No.  The same version of Perl is being used in both cases.  With
Cygwin B20, it works; with Cygwin 1.1.0, it doesn't.

  jik

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


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