Rubén Justo <rjusto@xxxxxxxxx> writes: > +# Completion for subcommands in commands that follow the syntax: > +# > +# git <command> <subcommand> > +# > +# 1: List of possible completion words. > +# Returns false if the current word is not a possible subcommand > +# (possitioned after the command), or if no option is found in > +# the list provided. > +__gitcomp_subcommand () > +{ > + local subcommands="$1" > + > + if [ $cword -eq $(($__git_cmd_idx + 1)) ]; then > + __gitcomp "$subcommands" > + > + test -n "$COMPREPLY" > + else > + false > + fi > +} I am not at all familiar with the code in this file, so treat this as a question from somebody who do not know the calling convention used around here. This helper function clobbers what was in COMPREPLY[@] before calling it, from a caller's point of view. Is it a pattern that potential callers in this file should already find familiar, and they do not have to be reminded that they cannot rely on what they prepared in COMPREPLY to be preserved across a call into this function? Otherwise I would suggest mentioning it in the helpful comment before the function, but I cannot tell if such a comment is even needed by the intended audience, so...