From: David Allsopp <david@allsopps.net>
To: Aaron Digulla <digulla@hepe.com>,
"cygwin@cygwin.com" <cygwin@cygwin.com>
Subject: RE: Formatting command line arguments when starting a Cygwin process from a native process
Date: Mon, 09 May 2016 15:19:00 -0000 [thread overview]
Message-ID: <E51C5B015DBD1348A1D85763337FB6D9F04BD207@Remus.metastack.local> (raw)
In-Reply-To: <5ba8-5730a580-3b-2319ce00@26574710>
Aaron Digulla wrote:
>
> Am Samstag, 07. Mai 2016 09:45 CEST, "David Allsopp" <dra27@cantab.net>
> schrieb:
>
>
> > > Then all you need is a rudimentary quoting.
> >
> > Yes, but the question still remains what that rudimentary quoting is -
> i.e.
> > I can see how to quote spaces which appear in elements of argv, but I
> > cannot see how to quote double quotes!
>
> This should help:
> https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/e
> veryone-quotes-command-line-arguments-the-wrong-way/
This provides documentation for how Microsoft implementations do it, not how Cygwin does it. The Cygwin DLL is responsible for determining how a Cygwin process gets argc and argv from GetCommandLineW.
> My line of thought is that Cygwin can't get anything which Windows can't
> send it. So the first step to solve this mess is to make sure the
> arguments which you send to CreateProcess() are correct.
>
> The next step would be to write a small C utility which dumps it's
> arguments, so you can properly debug all kinds of characters.
See later email, but IMHO the conversion is something Cygwin should have precisely documented, not determined by brittle experimentation.
> PS: I always point people to string list/array type methods to create
> processes which fix all the problems with spaces and odd characters
> (quotes, umlauts, etc). It seems that Windows doesn't have such a method
> to create processes. Which kind of makes sense; Windows is very, very
> mouse centered.
I fail to see the connection with mice! What Windows (NT) does have is a legacy where the decision on how to convert a command line to a list/array of arguments is determined per-process (and so not the responsibility of command line shells) vs Unix which puts the burden of converting a single command line to the array on the shell instead. Nominally, the Windows way is more flexible, though I don't think that flexibility is actually useful (especially if you look at the comments in the command line -> argv conversion in Microsoft's C Runtime library!).
David
next prev parent reply other threads:[~2016-05-09 15:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-05 15:24 David Allsopp
2016-05-05 16:47 ` Erik Soderquist
2016-05-06 8:03 ` David Allsopp
2016-05-06 13:17 ` Erik Soderquist
2016-05-06 14:35 ` Andrey Repin
2016-05-07 7:45 ` David Allsopp
2016-05-09 9:43 ` Peter Rosin
2016-05-09 10:06 ` Marco Atzeri
2016-05-09 15:49 ` David Allsopp
2016-05-09 16:02 ` Marco Atzeri
2016-05-09 16:14 ` David Allsopp
2016-05-09 15:49 ` David Allsopp
2016-05-09 14:57 ` Aaron Digulla
2016-05-09 15:19 ` David Allsopp [this message]
2016-05-10 13:30 ` Aaron Digulla
2016-05-10 17:02 ` David Allsopp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E51C5B015DBD1348A1D85763337FB6D9F04BD207@Remus.metastack.local \
--to=david@allsopps.net \
--cc=cygwin@cygwin.com \
--cc=digulla@hepe.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).