From: Junio C Hamano Date: Fri, 28 Sep 2012 19:23:47 GMT Subject: Re: [PATCH 2/5] completion: fix args of run_completion() test helper Message-ID: <7vzk4aj6ik.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120928183840.GB10719@goldbirke> SZEDER Gábor writes: > On Fri, Sep 28, 2012 at 11:04:05AM -0700, Junio C Hamano wrote: >> SZEDER Gábor writes: >> >> > To simulate the the user hit 'git , one of the completion tests > > s/the the/that the/ > >> > sets up the rather strange command line >> > >> > git "" >> > >> > i.e. the second word on the command line consists of two double >> > quotes. However, this is not what happens for real, because after >> > 'git ' the second word on the command line is just an empty >> > string. Luckily, the test works nevertheless. >> > >> > Fix this by passing the command line to run_completion() as separate >> > words. >> > >> > Signed-off-by: SZEDER Gábor >> > --- >> > t/t9902-completion.sh | 8 ++++---- >> > 1 file changed, 4 insertions(+), 4 deletions(-) >> > >> > diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh >> > index e7657537..f5e68834 100755 >> > --- a/t/t9902-completion.sh >> > +++ b/t/t9902-completion.sh >> > @@ -49,7 +49,7 @@ run_completion () >> > { >> > local -a COMPREPLY _words >> > local _cword >> > - _words=( $1 ) >> > + _words=( "$@" ) >> > (( _cword = ${#_words[@]} - 1 )) >> > __git_wrap__git_main && print_comp >> > } >> > @@ -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']?