From 98875bcb05d552cc59b300e33fe9000d295b1ffe Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Tue, 20 Oct 2015 14:22:25 +0000 Subject: 36900: _git: stash names completion: Display log messages The "$@" argument to compadd is removed because (I think) it contains a -J, which conflicts with the -V. Joint with Daniel Hahler. --- Completion/Unix/Command/_git | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'Completion/Unix/Command/_git') diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index 1fcde9015..719d717d7 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -5487,12 +5487,21 @@ __git_signoff_file () { (( $+functions[__git_stashes] )) || __git_stashes () { local expl + declare -a interleaved declare -a stashes + declare -a descriptions - stashes=(${(f)"$(_call_program stashes git stash list --pretty=format:%gd 2>/dev/null)"}) + interleaved=(${(ps:\0:)"$(_call_program stashes git stash list -z --pretty='format:%gd%x00%s%x00\(%cr\)' 2>/dev/null)"}) __git_command_successful $pipestatus || return 1 + () { + local i j k + for i j k in $interleaved; do + stashes+=($i) + descriptions+=("$i: $j $k") + done + } - _wanted stashes expl stash compadd "$@" -a - stashes + _wanted stashes expl 'stash' compadd -Vx -d descriptions -a - stashes } (( $+functions[__git_svn_revisions] )) || -- cgit 1.4.1