about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Unix/Command/_zip13
2 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 8d841f11d..d663b187b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-08-14  Clint Adams  <clint@zsh.org>
+
+	* 15629: Completion/Unix/Command/_zip: unzip -Z
+	should behave the same as zipinfo.
+
 2001-08-13  Bart Schaefer  <schaefer@brasslantern.com>
 
 	* 15613 (plus unposted additions): Test/B02typeset.ztst: Tests for
diff --git a/Completion/Unix/Command/_zip b/Completion/Unix/Command/_zip
index b01b756af..b8117c7b4 100644
--- a/Completion/Unix/Command/_zip
+++ b/Completion/Unix/Command/_zip
@@ -1,6 +1,6 @@
 #compdef zip unzip zipinfo
 
-local suffixes suf zipfile izip
+local suffixes suf zipfile izip uzi
 local expl curcontext="$curcontext" state line
 typeset -A opt_args
 
@@ -73,11 +73,17 @@ case $service in
       '(-p -z)-L[lowercase (some) filenames]' \
       '-M[page output]' \
       '-x[exclude the following names]' \
+      '-Z[zipinfo mode]:zipinfomode:->zipinfo' \
       "(-p -f -u -l -t -z -n -o -j -C -X -q -qq -a -aa -v -L -M)1:zip file:_files -g '(#i)*.(zip|[jw]ar)'" \
       '*:file:->files' && return 0
   ;;
-  zipinfo)
+esac
+
+[[ $state == zipinfo ]] && uzi="-Z[zipinfo mode]"
+
+if [[ $service == zipinfo ]] || [[ -n $uzi ]]; then
     _arguments -C -s \
+      $uzi \
       '(-2 -s -m -l -v -h -t -T -z)-1[filenames only]' \
       '(-1 -s -m -l -v -T)-2[just filenames but allow -h/-t/-z]' \
       '(-1 -2 -m -l -v -h -t)-s[short format]' \
@@ -93,8 +99,7 @@ case $service in
       '-x[exclude the following names]' \
       "(-1 -2 -s -m -l -v -h -z -C -t -T -M)1:zip file:_files -g '(#i)*.(zip|[jw]ar)'" \
       '*:file:->files' && return 0
-  ;;
-esac
+fi
 
 case $state in
   suffixes)