Hi, On Sun, Nov 21, 2010 at 01:32:48AM +0800, Tay Ray Chuan wrote: > Add basic completion for the three subcommands - show, expire, delete. > Try completing refs for these too. Heh, I've always thought reflog is plumbing, and that's why the completion script doesn't support it. > Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx> > --- > contrib/completion/git-completion.bash | 16 ++++++++++++++++ > 1 files changed, 16 insertions(+), 0 deletions(-) > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index f710469..4007ca1 100755 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -1632,6 +1632,22 @@ _git_rebase () > __gitcomp "$(__git_refs)" > } > > +_git_reflog () > +{ > + local SUB_CMDS=(show delete expire) > + local cur="${COMP_WORDS[COMP_CWORD-1]}" > + > + for val in ${SUB_CMDS[*]}; do > + if [[ "$val" == "$cur" ]]; then > + # this is a subcommand > + __gitcomp "$(__git_refs)" > + return This only looks at the previous word on the command line, and leads to wrong behavior when an option is used: $ git reflog expire --verbose <TAB><TAB> delete expire show To prevent this you could use the __git_find_on_cmdline() helper function and follow how other completion functions use it. > + fi > + done > + > + __gitcomp "${SUB_CMDS[*]}" > +} > + > __git_send_email_confirm_options="always never auto cc compose" > __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" > > -- > 1.7.3.2.496.g9c54 > > -- 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