* _gzip and _zcat
@ 2000-04-21 18:35 Tanaka Akira
0 siblings, 0 replies; only message in thread
From: Tanaka Akira @ 2000-04-21 18:35 UTC (permalink / raw)
To: zsh-workers
This is completion function for gzip, gunzip and zcat.
Completion/User/_gunzip should be removed after this patch is applied.
Index: Completion/User/_gzip
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/User/_gzip,v
retrieving revision 1.1.1.6
diff -u -r1.1.1.6 _gzip
--- Completion/User/_gzip 2000/02/10 12:48:30 1.1.1.6
+++ Completion/User/_gzip 2000/04/21 18:22:02
@@ -1,6 +1,82 @@
-#compdef gzip
+#compdef gzip gunzip gzcat
+local decompress
local expl
+local curcontext="$curcontext" state line
+typeset -A opt_args
-_description files expl 'file to compress'
-_files "$expl[@]" -g '*~*.([tT]|)[gG][zZ]'
+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
--- /dev/null Wed May 6 05:32:27 1998
+++ Completion/User/_zcat Sat Apr 22 03:22:25 2000
@@ -0,0 +1,20 @@
+#compdef zcat
+
+(( $+_is_gnu )) || typeset -gA _is_gnu
+
+if (( ! $+_is_gnu[$words[1]] )); then
+ if [[ $(_call version $words[1] --license </dev/null 2>&1) = *GNU* ]]
+ then
+ _is_gnu[$words[1]]=yes
+ else
+ _is_gnu[$words[1]]=
+ fi
+fi
+
+if [[ -n "$_is_gnu[$words[1]]" ]]
+then
+ _gzip "$@"
+else
+ _description files expl 'compressed file'
+ _files "$expl[@]" -g '*.Z'
+fi
--
Tanaka Akira
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2000-04-21 18:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-04-21 18:35 _gzip and _zcat Tanaka Akira
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).