Re: [PATCH 2/5] completion: fix args of run_completion() test helper
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 28, 2012, 19:23 UTC
- Message-ID
- <7vzk4aj6ik.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20120928183840.GB10719@goldbirke>
SZEDER Gábor <szeder@ira.uka.de> writes:
Show 54 quoted lines
> On Fri, Sep 28, 2012 at 11:04:05AM -0700, Junio C Hamano wrote:
>> SZEDER Gábor <szeder@ira.uka.de> writes:
>>
>> > To simulate the the user hit 'git <TAB>, 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 <TAB>' 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 <szeder@ira.uka.de>
>> > ---
>> > 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']?