From: Jeff King Date: Fri, 28 Sep 2012 19:30:08 GMT Subject: Re: [PATCH 2/5] completion: fix args of run_completion() test helper Message-ID: <20120928193008.GA3912@sigill.intra.peff.net> In-Reply-To: <7vzk4aj6ik.fsf@alter.siamese.dyndns.org> On Fri, Sep 28, 2012 at 12:23:47PM -0700, Junio C Hamano wrote: > >> > @@ -57,7 +57,7 @@ run_completion () > >> > test_completion () > >> > { > >> > test $# -gt 1 && echo "$2" > expected > >> > - run_completion "$@" && > >> > + run_completion $1 && > >> > test_cmp expected out > >> > } > >> > >> I can understand the other three hunks, but this one is fishy. > >> Shouldn't "$1" be inside a pair of dq? I.e. > >> > >> + run_completion "$1" && > > > > No. $1 holds all words on the command line. If it was between a pair > > of dq, then the whole command line would be passed to the completion > > script as a single word. > > And these "words" can be split at $IFS boundaries without any > issues? IOW, nobody would ever want to make words array in the > run_completion function to ['git' 'foo bar' 'baz']? It might be simpler to just convert test_completion into the test_completion_long I added in my series; the latter takes the expected output on stdin, leaving the actual arguments free to represent the real command-line. E.g., your example would become: test_completion git "foo bar" baz <<-\EOF ... expected output ... EOF -Peff