diff options
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_zip | 13 |
1 files changed, 9 insertions, 4 deletions
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) |