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. > > +print_comp () > > +{ > > + local IFS=$'\n' > > + echo "${COMPREPLY[*]}" > out > > +} > > + > > +run_completion () > > +{ > > + local -a COMPREPLY _words > > + local _cword > > + _words=( $1 ) > > + (( _cword = ${#_words[@]} - 1 )) > > + _git && print_comp > > +} -- 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