From 9147854368c7a0e9afad61187598b66ad0f5dbd6 Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Tue, 31 Jul 2001 13:55:35 +0000 Subject: 15551: complete only presumably compressed files for gzip -t and -l --- ChangeLog | 5 +++ Completion/Unix/Command/_gzip | 82 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 Completion/Unix/Command/_gzip diff --git a/ChangeLog b/ChangeLog index a5c7533bb..1421db44e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2001-07-31 Clint Adams + + * 15551: Completion/Unix/Command/_gzip: handle -l and -t + as done for -d; only complete presumably compressed files. + 2001-07-26 Oliver Kiddle * 15503: Test/E01options.ztst: fix posixbuiltins test so that it diff --git a/Completion/Unix/Command/_gzip b/Completion/Unix/Command/_gzip new file mode 100644 index 000000000..46664958d --- /dev/null +++ b/Completion/Unix/Command/_gzip @@ -0,0 +1,82 @@ +#compdef gzip gunzip gzcat=gunzip + +local decompress expl curcontext="$curcontext" state line +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' && return 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[@]" -/ + else + _description directories expl 'compressed directory' + _files "$expl[@]" -/ + fi + else + if [[ -z "$decompress" ]]; then + _description files expl 'file to compress' + _files "$expl[@]" -g '*~*.(([tT]|)[gG]|)[zZ]' + else + _description files expl 'compressed file' + _files "$expl[@]" -g '*.(([tT]|)[gG]|)[zZ]' + fi + fi + ;; +esac -- cgit 1.4.1