summaryrefslogtreecommitdiffstats
path: root/completions/gzip
diff options
context:
space:
mode:
Diffstat (limited to 'completions/gzip')
-rw-r--r--completions/gzip29
1 files changed, 17 insertions, 12 deletions
diff --git a/completions/gzip b/completions/gzip
index 0144c3a..9a41eec 100644
--- a/completions/gzip
+++ b/completions/gzip
@@ -1,27 +1,33 @@
# bash completion for gzip -*- shell-script -*-
-_gzip()
+_comp_cmd_gzip()
{
- local cur prev words cword
- _init_completion || return
+ local cur prev words cword comp_args
+ _comp_initialize -- "$@" || return
+ local noargopts='!(-*|*[bSACIJp]*)'
+ # shellcheck disable=SC2254
case $prev in
- --blocksize | --suffix | --help | --version | -!(-*)[bShV])
+ --blocksize | --suffix | --help | --version | --alias | --comment | \
+ --iterations | --maxsplits | -${noargopts}[bShVACIJ])
return
;;
- --processes | -!(-*)p)
- COMPREPLY=($(compgen -W "{1..$(_ncpus)}" -- "$cur"))
+ --processes | -${noargopts}p)
+ local REPLY
+ _comp_get_ncpus
+ _comp_compgen -- -W "{1..$REPLY}"
return
;;
esac
if [[ $cur == -* ]]; then
- COMPREPLY=($(compgen -W '$(_parse_help "$1") {-1..-9}' -- "$cur"))
+ _comp_compgen_help
+ _comp_compgen -a -- -W '-{1..9}'
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
return
fi
- local IFS=$'\n' xspec="*.@(gz|t[ag]z)"
+ local xspec="*.@(gz|t[ag]z)"
[[ ${1##*/} == pigz ]] && xspec="*.@([gz]z|t[ag]z)"
if [[ $prev == --* ]]; then
@@ -32,12 +38,11 @@ _gzip()
[[ $prev == -*f* ]] && xspec=
fi
- _tilde "$cur" || return
+ _comp_compgen_tilde && return
compopt -o filenames
- COMPREPLY=($(compgen -f -X "$xspec" -- "$cur")
- $(compgen -d -- "$cur"))
+ _comp_compgen -- -f -X "$xspec" -o plusdirs
} &&
- complete -F _gzip gzip pigz
+ complete -F _comp_cmd_gzip gzip pigz
# ex: filetype=sh