2012/4/13 SZEDER Gábor <szeder@xxxxxxxxxx>: > On Fri, Apr 13, 2012 at 11:12:36AM +0200, SZEDER Gábor wrote: >> On Thu, Apr 12, 2012 at 12:57:03AM +0300, Felipe Contreras wrote: >> > +. "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" >> > + >> > +_get_comp_words_by_ref () >> > +{ >> > + while [ $# -gt 0 ]; do >> > + case "$1" in >> > + cur) >> > + cur=${_words[_cword]} >> > + ;; >> > + prev) >> > + prev=${_words[_cword-1]} >> > + ;; >> > + words) >> > + words=("${_words[@]}") >> > + ;; >> > + cword) >> > + cword=$_cword >> > + ;; >> > + esac >> > + shift >> > + done >> > +} >> >> Git's completion script already implements this function. Why >> override it here? > > Ah, ok, I think I got it. > > Of course, the words on the command line must be specified somehow to > test completion functions. But the two implementations of > _get_comp_words_by_ref() for bash and zsh in the completion script > take the words on the command line from different variables, so we > need a common implementation to test completion functions both on bash > and zsh. Hence the _get_comp_words_by_ref() above, which takes the > words on the command line and their count from $_words and $_cword, > respectively, and run_completion() below, which fills those variables > with its arguments. Well, yeah, that's one reason, but also I don't see the point in trying to fill the internal bash completion variables, maybe there would be some conflicts? Plus, the bash version of _get_comp_words_by_ref is rather complicated, so I decided to start with something simple that I could understand and see exactly what's going on. And for zsh I would definitely prefer to override _get_comp_words_by_ref than to mess with the internal variables, although I haven't found a way to test completion for zsh. Cheers. -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html