summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2000-05-05 10:08:25 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2000-05-05 10:08:25 +0000
commit93fb9aaec51f597a9a19b06764f005952e447e54 (patch)
treeb8fc3a394c943f8dcb77b7f8f12c3e80aedd79f7
parent27f895df41af61a8ba678c390a5ef405109e8187 (diff)
downloadzsh-93fb9aaec51f597a9a19b06764f005952e447e54.tar.gz
zsh-93fb9aaec51f597a9a19b06764f005952e447e54.zip
Use one function for compression/decompression programs and new lzop completion
-rw-r--r--ChangeLog7
-rw-r--r--Completion/User/.distfiles4
-rw-r--r--Completion/User/_bzip26
-rw-r--r--Completion/User/_compress46
-rw-r--r--Completion/User/_lzop102
-rw-r--r--Completion/User/_pack18
-rw-r--r--Completion/User/_uncompress3
-rw-r--r--Completion/User/_unpack6
-rw-r--r--Completion/User/_zcat3
9 files changed, 173 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index cf51c9458..73c92ce9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2000-05-05 Oliver Kiddle <opk@zsh.org>
+
+ * 11184: Completion/User/.distfiles, Completion/User/_bzip2,
+ Completion/User/_compress, Completion/User/_lzop,
+ Completion/User/_pack, Completion/User/_zcat: Use one function for
+ each of compress/uncompress and pack/unpack and new lzop completion
+
2000-05-05 Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
* 11181: Src/Modules/zpty.c: make zpty -r stoppable even when
diff --git a/Completion/User/.distfiles b/Completion/User/.distfiles
index 471d3634c..6d5f21873 100644
--- a/Completion/User/.distfiles
+++ b/Completion/User/.distfiles
@@ -4,13 +4,13 @@ DISTFILES_SRC='
_configure _cvs _dd _diff _diff_options _dir_list _dirs
_domains _dvi _enscript
_find _finger _fakeroot _flex _gcc _gdb _getconf _gprof _groups
- _gs _gv _gzip _hosts _imagemagick _ispell _joe _killall _lp _lynx
+ _gs _gv _gzip _hosts _imagemagick _ispell _joe _killall _lp _lynx _lzop
_mailboxes _make _man _mh _mount _mutt _my_accounts _mysql_utils _nedit
_netscape _nslookup _other_accounts _pack _patch _pbm _pdf _perl
_perl_basepods _perl_builtin_funcs _perl_modules _perldoc
_ports _prcs _printers _prompt _ps _pspdf _psutils _rcs _rlogin _sh _socket
_ssh _strip _stty _su _sudo _tar _tar_archive _telnet _tex _texi
- _tiff _tilde_files _uncompress _unpack _urls _use_lo _user_at_host
+ _tiff _tilde_files _urls _use_lo _user_at_host
_users _users_on _webbrowser _wget _whereis _whois _xargs _yodl _yp
_zcat _zdump
'
diff --git a/Completion/User/_bzip2 b/Completion/User/_bzip2
index 545aa5fcc..f0fd23f90 100644
--- a/Completion/User/_bzip2
+++ b/Completion/User/_bzip2
@@ -23,8 +23,8 @@ case "${words[1]:t}" in
'(-c)--stdout[write on standard output]' \
'(--quiet)-q[suppress all warnings]' \
'(-q)--quiet[suppress all warnings]' \
- '(--verbose)*-v[verbose mode]' \
- '(-v)*--verbose[verbose mode]' \
+ '*-v[verbose mode]' \
+ '*--verbose[verbose mode]' \
'(--license)-L[display software license]' \
'(-L)--license[display software license]' \
'(--version)-V[display version number]' \
@@ -45,7 +45,7 @@ esac
if [[ "$state" = files ]]; then
(( $+opt_args[-z] || $+opt_args[--compress] )) && decompress=no
- (( $+opt_args[-d] || $+opt_args[--decompress] || $+opt_args[-t] || \
+ (( $+opt_args[-d] || $+opt_args[--decompress] || $+opt_args[-t] ||
$+opt_args[--test] )) && unset decompress
if [[ -z "$decompress" ]] ; then
_description files expl 'compressed file'
diff --git a/Completion/User/_compress b/Completion/User/_compress
index 860aeb5b0..288bb1645 100644
--- a/Completion/User/_compress
+++ b/Completion/User/_compress
@@ -1,3 +1,45 @@
-#defcomp compress
+#compdef compress uncompress
-_files -g '*~*.Z'
+local expl state line bits common_args1 common_args2 decompress
+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 "${words[1]:t}" in
+ compress)
+ _arguments -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[@]}"
+ ;;
+ uncompress)
+ _arguments -s "${common_args2[@]}"
+ decompress=yes
+ ;;
+ zcat)
+ _arguments -s "${common_args1[@]}"
+ decompress=yes
+ ;;
+esac
+
+if [[ "$state" = files ]]; then
+ if [[ -z "$decompress" ]] || (( $+opt_args[-d] )); then
+ _description files expl 'file to compress'
+ _files "$expl[@]" -g '*~*.Z'
+ else
+ _description files expl 'compressed file'
+ _files "$expl[@]" -g '*.Z'
+ fi
+fi
diff --git a/Completion/User/_lzop b/Completion/User/_lzop
new file mode 100644
index 000000000..fb9bea153
--- /dev/null
+++ b/Completion/User/_lzop
@@ -0,0 +1,102 @@
+#compdef lzop
+
+local expl state line decompress disp
+typeset -A opt_args
+
+_arguments -C -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 -x -extract)-d[decompress]' \
+ '(-d --uncompress -x -extract)--decompress[decompress]' \
+ '(-d --decompress -x -extract)--uncompress[decompress]' \
+ '(--extract -d --decompress --uncompress -n --name -p --path)-x[extract]' \
+ '(-x -d --decompress --uncompress -n --name -p --path)-x[extract]' \
+ '(--force)-f[force overwrite]' \
+ '(-f)--force[force overwrite]' \
+ '(--help -H)-h[display help message]' \
+ '(-h -H)--help[display help message]' \
+ '(-h --help)-H[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 --name)-n[do not save or restore the original name and time stamp]' \
+ '(-n -N --name)--no-name[do not save or restore the original name and time stamp]' \
+ '(--name -n --no-name)-N[save or restore the original name and time stamp]' \
+ '(-N -n --no-name)--name[save or restore the original name and time stamp]' \
+ '--no-mode[do not restore original mode]' \
+ '--no-time[do not restore original 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]' \
+ '*-v[verbose mode]' \
+ '*--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' \
+ '--ls=[list each compressed file in a format similar to ls -ln]:ls flag:->flags' \
+ '--info[list internal header fields for each compressed file]' \
+ '(--sysinfo)-I[display information about the system]' \
+ '(-I)--sysinfo[display information about the system]' \
+ '(--outfile)-o[specify output file]:output file:_files' \
+ '(-o)--outfile=[specify output file]:output file:_files' \
+ '(--path)-p[write output files to specified directory]:directory:_files -/' \
+ '(-p)--path=[[write output files to specified directory]:directory:_files -/' \
+ '(--no-checksum)-F[do not store or verify a checksum]' \
+ '(-F)--no-checksum[do not store or verify a checksum]' \
+ "(--keep -U --unlink --delete)-k[keep (don't delete) input files]" \
+ "(-k -U --unlink --delete)--keep[keep (don't delete) input files]" \
+ '(--unlink --delete)-U[delete input files]' \
+ '(-U --delete)--unlink[delete input files]' \
+ '(-U --unlink)--delete[delete input files]' \
+ '--no-stdin[do not try to read stdin]' \
+ '--no-warn[suppress all warnings]' \
+ '--ignore-warn[suppress all warnings and never exit with status 2]' \
+ '--no-color[do not use an color escape sequences]' \
+ '--mono[assume a mono ANSI terminal]' \
+ '--color[assume a color ANSI terminal]' \
+ '--intro[display intro sequence]' \
+ '--filter=[preprocess data with a special multimedia filter]:number' \
+ '*:files:->files'
+
+case "$state" in
+ files)
+ if (( $+opt_args[-d] || $+opt_args[--decompress] ||
+ $+opt_args[--uncompress] || $+opt_args[-x] || $+opt_args[--extract] ||
+ $+opt_args[--test] || $+opt_args[-t] || $+opt_args[--list] ||
+ $+opt_args[-l] || $+opt_args[--ls] || $+opt_args[--info] )); then
+ _description files expl 'compressed file'
+ _files "$expl[@]" -g '*.[tl]zo'
+ else
+ _description files expl 'file to compress'
+ _files "$expl[@]" -g '*~*.[tl]zo'
+
+ fi
+ ;;
+ flags)
+ disp=( \
+ "F -- Append a \`*' for executable files" \
+ "G -- Inhibit display of group information" \
+ "Q -- Enclose file names in double quotes" )
+ disp=( ${disp[@]%[Z$PREFIX] -*} )
+ compset -P '[FGQ]*'
+ compadd -d disp - ${disp[@]% -*}
+ ;;
+esac
diff --git a/Completion/User/_pack b/Completion/User/_pack
index a15cfa709..5ec7a160c 100644
--- a/Completion/User/_pack
+++ b/Completion/User/_pack
@@ -1,6 +1,16 @@
-#compdef pack
+#compdef pack pcat unpack
-local expl
+local expl state line
-_description expl 'file to compress'
-_files "$expl[@]" -g '*~*.z'
+case ${words[1]:t} in
+ pack)
+ _arguments -C \
+ '-f[force packing even for files which will not benefit]' \
+ '-[show statistics for files]' \
+ '*:file to compress:_files -g \*\~\*.z'
+ ;;
+ pcat|unpack)
+ _description files expl 'compressed file'
+ _files "$expl[@]" -g '*.z'
+ ;;
+esac
diff --git a/Completion/User/_uncompress b/Completion/User/_uncompress
deleted file mode 100644
index e25805d50..000000000
--- a/Completion/User/_uncompress
+++ /dev/null
@@ -1,3 +0,0 @@
-#defcomp uncompress zmore
-
-_files -g '*.Z'
diff --git a/Completion/User/_unpack b/Completion/User/_unpack
deleted file mode 100644
index fb8867560..000000000
--- a/Completion/User/_unpack
+++ /dev/null
@@ -1,6 +0,0 @@
-#compdef unpack pcat
-
-local expl
-
-_description expl 'compressed file'
-_files "$expl[@]" -g '*.z'
diff --git a/Completion/User/_zcat b/Completion/User/_zcat
index 378844511..78a848e36 100644
--- a/Completion/User/_zcat
+++ b/Completion/User/_zcat
@@ -15,6 +15,5 @@ if [[ -n "$_is_gnu[$words[1]]" ]]
then
_gzip "$@"
else
- _description files expl 'compressed file'
- _files "$expl[@]" -g '*.Z'
+ _compress "$@"
fi