From 9d7298bac8c9c8930fa69e4bffa75fb6d0beb506 Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Sun, 24 Aug 2008 19:48:09 +0000 Subject: 25521: get merge strategies from git merge in case the administrator has added custom strategies. --- ChangeLog | 5 +++++ Completion/Unix/Command/_git | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6da23d08e..475539651 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-08-24 Clint Adams + + * 25521: Completion/Unix/Command/_git: get merge strategies from + git merge in case the administrator has added custom strategies. + 2008-08-22 Peter Stephenson * 25508: Src/exec.c: set file name if function came from diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index a6e75c64a..25bc968b5 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -4039,12 +4039,14 @@ __git_gpg_secret_keys () { (( $+functions[__git_merge_strategies] )) || __git_merge_strategies () { - declare -a merge_strategies_cache + local expl + local -a merge_strategies - merge_strategies_cache=(${${=${${(M)${(f)"$(<$(git --exec-path)/git-merge)"}:#all_strategies*}##all_strategies=\'}%%\'}:#recur}) + if ! merge_strategies=(${=${${(M)${(f)"$(_call_program strategies git merge -s '' 2>&1)"}:#[Aa]vailable (custom )#strategies are: *}#[Aa]vailable (custom )#strategies are: }%.}); then + merge_strategies=(${=${${(M)${(f)"$(<$(git --exec-path)/git-merge)"}:#all_strategies*}##all_strategies=\'}%%\'}) + fi - local expl - _wanted merge-strategies expl 'merge strategy' compadd - $merge_strategies_cache + _wanted merge-strategies expl 'merge strategy' compadd -a merge_strategies "$@" } # TODO: Use this in more places. -- cgit 1.4.1