summaryrefslogtreecommitdiffstats
path: root/completions/chmod
diff options
context:
space:
mode:
Diffstat (limited to 'completions/chmod')
-rw-r--r--completions/chmod23
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