diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Completion/User/_gunzip | 3 | ||||
-rw-r--r-- | Completion/User/_gzip | 83 |
3 files changed, 88 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index e86e5a4a4..dd066357d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2000-04-26 Sven Wischnowsky <wischnow@informatik.hu-berlin.de> + * Tanaka Akira: 10890: Completion/User/_gunzip, + Completion/User/_gzip, Completion/User/_zcat: new completion for + GNU zip commands + + * Tanaka Akira: 10885: Completion/X/_xset: new completion function + for xset + * 10926: Completion/X/_x_color, Doc/Zsh/compwid.yo, Src/Zle/complete.c, Src/Zle/compmatch.c: allow to anchor on gaps between strings in matching control specs diff --git a/Completion/User/_gunzip b/Completion/User/_gunzip deleted file mode 100644 index 35a27e774..000000000 --- a/Completion/User/_gunzip +++ /dev/null @@ -1,3 +0,0 @@ -#defcomp gunzip zcat - -_files -g '*.[gG][z]' diff --git a/Completion/User/_gzip b/Completion/User/_gzip index 3cda1e4ed..e093788dc 100644 --- a/Completion/User/_gzip +++ b/Completion/User/_gzip @@ -1,3 +1,82 @@ -#defcomp gzip +#compdef gzip gunzip gzcat -_files -g '*~*.[gG][zZ]' +local decompress +local expl +local curcontext="$curcontext" state line +typeset -A opt_args + +case "${words[1]:t}" in +gunzip|zcat|gzcat) + decompress=yes + ;& +gzip) + _arguments -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' + ;; +esac + +case "$state" in +files) + (( $+opt_args[-d] || $+opt_args[--decompress] || $+opt_args[--uncompress] )) && + 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 |