summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Terbeck <bewater@users.sourceforge.net>2011-07-29 13:07:52 +0000
committerFrank Terbeck <bewater@users.sourceforge.net>2011-07-29 13:07:52 +0000
commitd557905eb63f5fa087675e05ba82210c86dde358 (patch)
treee455690a3fcf74ca657fd1efa7c1aa8f7bea0f26
parent7d1480af54e95e5a2165e8bb69937a6b0a1dc50a (diff)
downloadzsh-d557905eb63f5fa087675e05ba82210c86dde358.tar.gz
zsh-d557905eb63f5fa087675e05ba82210c86dde358.zip
Luka Perkov: 29624: _quilt: Improve `push' and `pop' completion.
-rw-r--r--ChangeLog7
-rw-r--r--Completion/Unix/Command/_quilt37
2 files changed, 34 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 57b269b31..fec3754f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-29 Frank Terbeck <ft@bewatermyfriend.org>
+
+ * Luka Perkov: 29624: Completion/Unix/Command/_quilt: Improve
+ `push' and `pop' completion.
+
2011-07-28 Peter Stephenson <pws@csr.com>
* 29626: Src/parse.c, Test/C04funcdef.ztst: arguments to
@@ -15179,5 +15184,5 @@
*****************************************************
* This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5411 $
+* $Revision: 1.5412 $
*****************************************************
diff --git a/Completion/Unix/Command/_quilt b/Completion/Unix/Command/_quilt
index a2fd799a6..0c51ba5bc 100644
--- a/Completion/Unix/Command/_quilt
+++ b/Completion/Unix/Command/_quilt
@@ -1,5 +1,8 @@
#compdef quilt
+local -a tmp
+local rc
+
_arguments \
'--trace' \
'--quiltrc:config file:_files' \
@@ -10,21 +13,37 @@ _arguments \
'*::subcmd:->subcmd' && return 0
case "$state" in
- (subcmd)
+ (subcmd)
case "$words[1]" in
(applied|delete|files|graph|header|next|previous|refresh|unapplied)
- _wanted -V 'patches' expl 'patch' compadd ${(f)"$(quilt series)"}
- ;;
+ _wanted -V 'patches' expl 'patch' compadd ${(f)"$(quilt series)"}
+ ;;
(push)
- _wanted -V 'unapplied patches' expl 'patch' compadd ${(f)"$(quilt unapplied)"}
- ;;
+ if (( CURRENT == 2 )); then
+ tmp=( ${(f)"$(quilt unapplied 2>&1)"} )
+ rc=$?
+ if (( rc == 0 )); then
+ _wanted -V 'unapplied patches' expl 'patch' compadd "${tmp[@]}"
+ else
+ _message "No unapplied patches"
+ fi
+ fi
+ ;;
(pop)
- _wanted -V 'applied patches' expl 'patch' compadd ${(f)"$(quilt applied)"}
- ;;
+ if (( CURRENT == 2 )); then
+ tmp=( ${(f)"$(quilt applied 2>&1)"} )
+ rc=$?
+ if (( rc == 0 )); then
+ _wanted -V 'applied patches' expl 'patch' compadd "${tmp[@]}"
+ else
+ _message "No applied patches"
+ fi
+ fi
+ ;;
(*)
- _files
- ;;
+ _files
+ ;;
esac
;;
esac