diff options
author | Oliver Kiddle <opk@users.sourceforge.net> | 2000-05-05 10:08:25 +0000 |
---|---|---|
committer | Oliver Kiddle <opk@users.sourceforge.net> | 2000-05-05 10:08:25 +0000 |
commit | 93fb9aaec51f597a9a19b06764f005952e447e54 (patch) | |
tree | b8fc3a394c943f8dcb77b7f8f12c3e80aedd79f7 | |
parent | 27f895df41af61a8ba678c390a5ef405109e8187 (diff) | |
download | zsh-93fb9aaec51f597a9a19b06764f005952e447e54.tar.gz zsh-93fb9aaec51f597a9a19b06764f005952e447e54.tar.xz zsh-93fb9aaec51f597a9a19b06764f005952e447e54.zip |
Use one function for compression/decompression programs and new lzop completion
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Completion/User/.distfiles | 4 | ||||
-rw-r--r-- | Completion/User/_bzip2 | 6 | ||||
-rw-r--r-- | Completion/User/_compress | 46 | ||||
-rw-r--r-- | Completion/User/_lzop | 102 | ||||
-rw-r--r-- | Completion/User/_pack | 18 | ||||
-rw-r--r-- | Completion/User/_uncompress | 3 | ||||
-rw-r--r-- | Completion/User/_unpack | 6 | ||||
-rw-r--r-- | Completion/User/_zcat | 3 |
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 |