diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Unix/Command/_compress | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_compress b/Completion/Unix/Command/_compress new file mode 100644 index 000000000..9ba8c8e15 --- /dev/null +++ b/Completion/Unix/Command/_compress @@ -0,0 +1,48 @@ +#compdef compress uncompress + +local expl state line bits common_args1 common_args2 decompress +local curcontext="$curcontext" +typeset -A opt_args +bits=( {9..16} ) + +common_args1=( \ + '-n[omit compressed file header from compressed file]' \ + '-V[display current version and compile options]' \ + '*:files:->files') +common_args2=( \ + '-c[write on standard output]' \ + '(-F)-f[force overwrite]' \ + '(-f)-F[force overwrite]' \ + '(-v)-q[suppress display of compression statistics]' \ + '(-q)-v[display compression statistics]' \ + "${common_args1[@]}" ) + +case "$service" in + compress) + _arguments -C -s \ + "-b[specify maximum number of bits used to replace common substring]:bits:(${bits[*]})" \ + '-C[produce output compatible with BSD 2.0]' \ + '(-b -C)-d[decompress]' \ + "${common_args2[@]}" && return 0 + ;; + uncompress) + _arguments -C -s "${common_args2[@]}" && return 0 + decompress=yes + ;; + zcat) + _arguments -C -s "${common_args1[@]}" && return 0 + decompress=yes + ;; +esac + +if [[ "$state" = files ]]; then + if [[ -z "$decompress" ]] || (( $+opt_args[-d] )); then + _description files expl 'file to compress' + _files "$expl[@]" -g '*~*.Z' && return 0 + else + _description files expl 'compressed file' + _files "$expl[@]" -g '*.Z' && return 0 + fi +fi + +return 1 |