Merge branch 'dk/zsh-config-completion-fix'

Completion script updates for zsh

* dk/zsh-config-completion-fix:
  completion: repair config completion for Zsh
This commit is contained in:
Junio C Hamano 2025-01-21 08:44:55 -08:00
commit c032b1d8bc

View File

@ -2737,12 +2737,17 @@ __git_compute_config_vars_all ()
__git_config_vars_all="$(git --no-pager help --config)" __git_config_vars_all="$(git --no-pager help --config)"
} }
__git_indirect()
{
eval printf '%s' "\"\$$1\""
}
__git_compute_first_level_config_vars_for_section () __git_compute_first_level_config_vars_for_section ()
{ {
local section="$1" local section="$1"
__git_compute_config_vars __git_compute_config_vars
local this_section="__git_first_level_config_vars_for_section_${section}" local this_section="__git_first_level_config_vars_for_section_${section}"
test -n "${!this_section}" || test -n "$(__git_indirect "${this_section}")" ||
printf -v "__git_first_level_config_vars_for_section_${section}" %s \ printf -v "__git_first_level_config_vars_for_section_${section}" %s \
"$(echo "$__git_config_vars" | awk -F. "/^${section}\.[a-z]/ { print \$2 }")" "$(echo "$__git_config_vars" | awk -F. "/^${section}\.[a-z]/ { print \$2 }")"
} }
@ -2752,7 +2757,7 @@ __git_compute_second_level_config_vars_for_section ()
local section="$1" local section="$1"
__git_compute_config_vars_all __git_compute_config_vars_all
local this_section="__git_second_level_config_vars_for_section_${section}" local this_section="__git_second_level_config_vars_for_section_${section}"
test -n "${!this_section}" || test -n "$(__git_indirect "${this_section}")" ||
printf -v "__git_second_level_config_vars_for_section_${section}" %s \ printf -v "__git_second_level_config_vars_for_section_${section}" %s \
"$(echo "$__git_config_vars_all" | awk -F. "/^${section}\.</ { print \$3 }")" "$(echo "$__git_config_vars_all" | awk -F. "/^${section}\.</ { print \$3 }")"
} }
@ -2907,7 +2912,7 @@ __git_complete_config_variable_name ()
local section="${pfx%.*.}" local section="${pfx%.*.}"
__git_compute_second_level_config_vars_for_section "${section}" __git_compute_second_level_config_vars_for_section "${section}"
local this_section="__git_second_level_config_vars_for_section_${section}" local this_section="__git_second_level_config_vars_for_section_${section}"
__gitcomp "${!this_section}" "$pfx" "$cur_" "$sfx" __gitcomp "$(__git_indirect "${this_section}")" "$pfx" "$cur_" "$sfx"
return return
;; ;;
branch.*) branch.*)
@ -2917,7 +2922,7 @@ __git_complete_config_variable_name ()
__gitcomp_direct "$(__git_heads "$pfx" "$cur_" ".")" __gitcomp_direct "$(__git_heads "$pfx" "$cur_" ".")"
__git_compute_first_level_config_vars_for_section "${section}" __git_compute_first_level_config_vars_for_section "${section}"
local this_section="__git_first_level_config_vars_for_section_${section}" local this_section="__git_first_level_config_vars_for_section_${section}"
__gitcomp_nl_append "${!this_section}" "$pfx" "$cur_" "${sfx:- }" __gitcomp_nl_append "$(__git_indirect "${this_section}")" "$pfx" "$cur_" "${sfx:- }"
return return
;; ;;
pager.*) pager.*)
@ -2934,7 +2939,7 @@ __git_complete_config_variable_name ()
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "." __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
__git_compute_first_level_config_vars_for_section "${section}" __git_compute_first_level_config_vars_for_section "${section}"
local this_section="__git_first_level_config_vars_for_section_${section}" local this_section="__git_first_level_config_vars_for_section_${section}"
__gitcomp_nl_append "${!this_section}" "$pfx" "$cur_" "${sfx:- }" __gitcomp_nl_append "$(__git_indirect "${this_section}")" "$pfx" "$cur_" "${sfx:- }"
return return
;; ;;
submodule.*) submodule.*)
@ -2944,7 +2949,7 @@ __git_complete_config_variable_name ()
__gitcomp_nl "$(__git config -f "$(__git rev-parse --show-toplevel)/.gitmodules" --get-regexp 'submodule.*.path' | awk -F. '{print $2}')" "$pfx" "$cur_" "." __gitcomp_nl "$(__git config -f "$(__git rev-parse --show-toplevel)/.gitmodules" --get-regexp 'submodule.*.path' | awk -F. '{print $2}')" "$pfx" "$cur_" "."
__git_compute_first_level_config_vars_for_section "${section}" __git_compute_first_level_config_vars_for_section "${section}"
local this_section="__git_first_level_config_vars_for_section_${section}" local this_section="__git_first_level_config_vars_for_section_${section}"
__gitcomp_nl_append "${!this_section}" "$pfx" "$cur_" "${sfx:- }" __gitcomp_nl_append "$(__git_indirect "${this_section}")" "$pfx" "$cur_" "${sfx:- }"
return return
;; ;;
*.*) *.*)