Re: [PATCH 07/12] completion: simplify command stuff
- From
SZEDER Gábor <szeder@ira.uka.de>
- Date
- Apr 11, 2012, 22:14 UTC
- Message-ID
- <20120411221430.GT2289@goldbirke>
- In-Reply-To
- <1333854479-23260-8-git-send-email-felipe.contreras@gmail.com>
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 ...
Show 55 quoted lines
> 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