From: Felipe Contreras Date: Wed, 19 Sep 2012 18:16:22 GMT Subject: Re: possible bug in autocompletion Message-ID: In-Reply-To: <20120919174336.GA11699@sigill.intra.peff.net> On Wed, Sep 19, 2012 at 7:43 PM, Jeff King wrote: > On Wed, Sep 19, 2012 at 07:08:09PM +0200, Felipe Contreras wrote: > >> On Tue, Jul 17, 2012 at 2:12 PM, Jeff King wrote: >> >> > --- a/contrib/completion/git-completion.bash >> > +++ b/contrib/completion/git-completion.bash >> > @@ -261,7 +261,12 @@ __gitcomp () >> > __gitcomp_nl () >> > { >> > local IFS=$'\n' >> > - COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}")) >> > + local words=$1 >> > + words=${words//\\/\\\\} >> > + words=${words//\$/\\\$} >> > + words=${words//\'/\\\'} >> > + words=${words//\"/\\\"} >> > + COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$words" -- "${3-$cur}")) >> > } >> >> What about something like this? >> >> local words >> printf -v words "%q" "$w" >> COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$words" -- "${3-$cur}")) > > Thanks, I didn't know about bash's internal printf magic. That is a much > more elegant solution. > > Care to wrap it up in a patch? I'm trying to, but unfortunately "\n" gets converted to "\\n", so it doesn't get separated to words. Any ideas? -- Felipe Contreras