Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <37C420F5.D7B44599@dev.tivoli.com> Date: Wed, 25 Aug 1999 18:59:33 +0200 From: Rob Tulloh X-Mailer: Mozilla 4.61 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: cygwin AT sourceware DOT cygnus DOT com Subject: Re: B20.1 sh and bash command line parsing question References: <19990825133902 DOT 3055 DOT rocketmail AT send205 DOT yahoomail DOT com> <37C41060 DOT B6C87BC5 AT dev DOT tivoli DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Howdy, I think I have something that shows some promise now. The rule for cygwin runtime seems to be: 1. Enclose the entire command line in single quotes before invoking 'sh -c' via CreateProcess(). 2. Escape (with a single backslash) all embedded single quotes in the command line. 3. Escape nothing else Testing with this hypothesis now and it seems to be working so far. Thanks to Earnie Boyd for engaging me in some conversation that led me to some hints on what might be going on under the covers. Cheers! Rob Rob Tulloh wrote: > > Proof that cygwin is using GetCommandLine? > > i:/apps/work/cygnus/CYGWIN~1/H-I586~1/bin/sh.exe -c 'echo \\\"hi > there\\\"' > i:/apps/work/cygnus/CYGWIN~1/H-I586~1/bin/bash.exe -c 'echo \\\"hi > there\\\"' > > i:\>i:/apps/work/cygnus/CYGWIN~1/H-I586~1/bin/sh.exe -c 'echo \\\"hi > there\\\"' > > \"hi there\" > > i:\>i:/apps/work/cygnus/CYGWIN~1/H-I586~1/bin/bash.exe -c 'echo \\\"hi > there\\\" > ' > \"hi there\" > > There is no reason for the Microsoft runtime to grok a single quote. > Yet, > it seems to work. If you then use the normal rules for shell escapes, > you > get the desired results. Odd, but perhaps can be leveraged... > > ROb -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com