Re: [PATCH 1/3] rev-parse: add --sq-quote to shell quote arguments
- From
Christian Couder <chriscool@tuxfamily.org>
- Date
- Apr 25, 2009, 05:06 UTC
- Message-ID
- <200904250706.40533.chriscool@tuxfamily.org>
- In-Reply-To
- <49F17945.8000004@viscovery.net>
Le vendredi 24 avril 2009, Johannes Sixt a écrit :
Show 20 quoted lines
> Junio C Hamano schrieb: > > Not very readable. A better example might be to demonstrate something > > like this: > > > > $ cat >your-git-script.sh <<\EOF > > #!/bin/sh > > # quote user-supplied arguments > > args=$(git rev-parse --sq-quote "$@") > > # and use it inside a handcrafted command line > > command="git frotz -n24 $args" > > eval "$command" > > EOF > > > > $ sh your-git-script.sh "a b'c" > > > > i.e, put stress on how to use it, not on how it works internally. > > Hmm, that makes me wonder why we special-case shell-quoting and implement > it in an executable. Why don't we have perl-quoting, C-quoting, > PHP-quoting, $language-of-your-choice quoting, etc, too?
Because there are a lot of shell scripts in the Git source code and it's an important problem for shell scripts to properly handle arguments.
> I think we should simply move sq() from git-am to git-sh-setup and use > that in git-bisect.
We already have an implementation of shell quoting in C, why not use it everywhere instead of having 2 implementations?
And what happens if someone want to port to C a shell script that uses sq()? The implementation used will have to be the one in C, so why not use it right now?
Regards, Christian.