diff options
Diffstat (limited to 'completions/chmod')
-rw-r--r-- | completions/chmod | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/completions/chmod b/completions/chmod index d3fc349..3dbc16f 100644 --- a/completions/chmod +++ b/completions/chmod @@ -1,41 +1,40 @@ # chmod(1) completion -*- shell-script -*- -_chmod() +_comp_cmd_chmod() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return case $prev in --help | --version) return ;; --reference) - _filedir + _comp_compgen_filedir return ;; esac - $split && return + [[ $was_split ]] && return # Adapted from coreutils 8.28 chmod man page local modearg="-@(@(+([rwxXst])|[ugo])|+([0-7]))" # shellcheck disable=SC2053 if [[ $cur == -* && $cur != $modearg ]]; then - local opts=$(_parse_help "$1") - COMPREPLY=($(compgen -W '${opts:-$(_parse_usage "$1")}' -- "$cur")) + _comp_compgen_help || _comp_compgen_usage [[ ${COMPREPLY-} == *= ]] && compopt -o nospace return fi - local args - _count_args "" "" "$modearg" + local REPLY + _comp_count_args -i "$modearg" - case $args in + case $REPLY in 1) ;; # mode - *) _filedir ;; + *) _comp_compgen_filedir ;; esac } && - complete -F _chmod chmod + complete -F _comp_cmd_chmod chmod # ex: filetype=sh |