#compdef gzip gunzip gzcat=gunzip local decompress expl curcontext="$curcontext" state line ret=1 typeset -A opt_args case "$service" in gunzip|zcat) decompress=yes ;& gzip) _arguments -C -s -S \ '(--to-stdout --stdout)-c[write on standard output]' \ '(-c --stdout)--to-stdout[write on standard output]' \ '(-c --to-stdout)--stdout[write on standard output]' \ '(--decompress --uncompress)-d[decompress]' \ '(-d --uncompress)--decompress[decompress]' \ '(-d --decompress)--uncompress[decompress]' \ '(--force)-f[force overwrite]' \ '(-f)--force[force overwrite]' \ '(--help)-h[display help message]' \ '(-h)--help[display help message]' \ '(--list)-l[list compressed file contents]' \ '(-l)--list[list compressed file contents]' \ '(--license)-L[display software license]' \ '(-L)--license[display software license]' \ '(--no-name)-n[do not save or restore the original name and time stamp]' \ '(-n)--no-name[do not save or restore the original name and time stamp]' \ '(--name)-N[save or restore the original name and time stamp]' \ '(-N)--name[save or restore the original name and time stamp]' \ '(--quiet --silent)-q[suppress all warnings]' \ '(-q --silent)--quiet[suppress all warnings]' \ '(-q --quiet)--silent[suppress all warnings]' \ '(--recursive)-r[operate recursively on directories]' \ '(-r)--recursive[operate recursively on directories]' \ '(--suffix)-S+[specify suffix for compressed files]:suffix:' \ '(-S)--suffix=[specify suffix for compressed files]:suffix:' \ '(--test)-t[test compressed file integrity]' \ '(-t)--test[test compressed file integrity]' \ '(--verbose)-v[verbose mode]' \ '(-v)--verbose[verbose mode]' \ '(--version)-V[display version number]' \ '(-V)--version[display version number]' \ '( -1 -2 -3 -4 -5 -6 -7 -8 -9 --best)--fast' \ '(--fast -2 -3 -4 -5 -6 -7 -8 -9 --best)-1' \ '(--fast -1 -3 -4 -5 -6 -7 -8 -9 --best)-2' \ '(--fast -1 -2 -4 -5 -6 -7 -8 -9 --best)-3' \ '(--fast -1 -2 -3 -5 -6 -7 -8 -9 --best)-4' \ '(--fast -1 -2 -3 -4 -6 -7 -8 -9 --best)-5' \ '(--fast -1 -2 -3 -4 -5 -7 -8 -9 --best)-6' \ '(--fast -1 -2 -3 -4 -5 -6 -8 -9 --best)-7' \ '(--fast -1 -2 -3 -4 -5 -6 -7 -9 --best)-8' \ '(--fast -1 -2 -3 -4 -5 -6 -7 -8 --best)-9' \ '(--fast -1 -2 -3 -4 -5 -6 -7 -8 -9 )--best' \ '*:files:->files' && ret=0 ;; esac case "$state" in files) (( $+opt_args[-d] || $+opt_args[--decompress] || $+opt_args[--uncompress] || $+opt_args[-l] || $+opt_args[--list] || $+opt_args[-t] || $+opt_args[--test] )) && decompress=yes if (( $+opt_args[-r] || $+opt_args[--recursive] )); then if [[ -z "$decompress" ]]; then _description directories expl 'directory to compress' _files "$expl[@]" -/ && return else _description directories expl 'compressed directory' _files "$expl[@]" -/ && return fi else if [[ -z "$decompress" ]]; then _description files expl 'file to compress' _files "$expl[@]" -g '*~*.(([tT]|)[gG]|)[zZ]' && return else _description files expl 'compressed file' _files "$expl[@]" -g '*.(([tT]|)[gG]|)[zZ]' && return fi fi ;; esac return ret