Re: [PATCH] completion: fix shell expansion of items
- From
Jeff King <peff@peff.net>
- Date
- Sep 20, 2012, 18:21 UTC
- Message-ID
- <20120920182104.GB19204@sigill.intra.peff.net>
- In-Reply-To
- <20120920181152.GA4689@goldbirke>
On Thu, Sep 20, 2012 at 08:11:52PM +0200, SZEDER Gábor wrote:
Show 25 quoted lines
> > > In order to achieve that I took bash-completion's quote() function, > > > which is rather simple, and renamed it to __git_quote() as per Jeff > > > King's suggestion. > > > > > > Solves the original problem for me. > > > > Me too. Thanks. > > While it solves the original problem, it seems to break refs > completion, as demonstrated by the following POC test: > > diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh > index 92d7eb47..fab63b95 100755 > --- a/t/t9902-completion.sh > +++ b/t/t9902-completion.sh > @@ -228,4 +228,11 @@ test_expect_success 'general options plus command' ' > test_completion "git --no-replace-objects check" "checkout " > ' > > +test_expect_success 'basic refs completion' ' > + touch file && > + git add file && > + git commit -m initial && > + test_completion "git branch m" "master " > +'
Hmm. I notice that Felipe's patch wraps the _whole_ input to __gitcomp_nl in single quotes. So if there are multiple completions we would end up with:
'one two quo\'ted three'
I wonder if that is OK to feed to compgen -W, or if it wants to expand it line-by-line. Just guessing at this point, though.
-Peff
Show 14 quoted lines
> + > test_done > -- > 1.7.12.1.438.g7dfa67b > > > which fails with: > > --- expected 2012-09-20 18:05:23.857752925 +0000 > +++ out 2012-09-20 18:05:23.877752925 +0000 > @@ -1 +1 @@ > -master > + >