Hi, On Sun, Apr 08, 2012 at 06:07:54AM +0300, Felipe Contreras wrote: > No need to recalculate it. Based on this short description I would expect that this "command stuff" is calculated somewhere, and a helper function is changed to use the already calculated value ... > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index c9672b2..1fe11f4 100755 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -721,7 +721,7 @@ __git_complete_revlist () > > __git_complete_remote_or_refspec () > { > - local cur_="$cur" cmd="${words[1]}" > + local cur_="$cur" > local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0 > if [ "$cmd" = "remote" ]; then > ((c++)) > @@ -2599,7 +2599,7 @@ _git_whatchanged () > > _git () > { > - local i c=1 command __git_dir > + local i c=1 cmd __git_dir > > if [[ -n ${ZSH_VERSION-} ]]; then > emulate -L bash > @@ -2625,13 +2625,13 @@ _git () > -p|--paginate|--no-pager) ;; > --exec-path=*|--html-path|--info-path) ;; > --work-tree=*|--namespace=*|--no-replace-objects) ;; > - --help) command="help"; break ;; > - *) command="$i"; break ;; > + --help) cmd="help"; break ;; > + *) cmd="$i"; break ;; > esac > ((c++)) > done > > - if [ -z "$command" ]; then > + if [ -z "$cmd" ]; then > case "$cur" in > --*) __gitcomp " > --paginate > @@ -2654,10 +2654,10 @@ _git () > return > fi > > - local completion_func="_git_${command//-/_}" > + local completion_func="_git_${cmd//-/_}" > declare -f $completion_func >/dev/null && $completion_func && return > > - local expansion=$(__git_aliased_command "$command") > + local expansion=$(__git_aliased_command "$cmd") > if [ -n "$expansion" ]; then > completion_func="_git_${expansion//-/_}" > declare -f $completion_func >/dev/null && $completion_func > -- > 1.7.10.3.g5a738d > ... but the bulk of this change is in the top-level _git() function, as it renames a variable there to match the variable name in the helper function. Perhaps it should be the other way around. However, this change "promotes" the command (or cmd) variable from being just a variable in _git() to a variable that is used in other completion functions, too. Why not go one more step further, and denote this by adding a __git prefix (i.e. renaming the variable to __git_command)? Best, Gábor -- 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