diff --git a/completions/modprobe b/completions/modprobe index 10a4a1bd..c4048de0 100644 --- a/completions/modprobe +++ b/completions/modprobe @@ -2,10 +2,13 @@ _modprobe() { - local cur prev words cword - _init_completion || return + local cur prev words cword split + _init_completion -s || return case "$prev" in + -h|--help|-V|--version) + return + ;; -C|--config) _filedir return @@ -20,13 +23,20 @@ _modprobe() ;; esac + $split && return + if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config -c - --showconfig --dump-modversions -d --dirname --first-time - --force-vermagic --force-modversion -f --force -i --ignore-install - --ignore-remove -l --list -n --dry-run -q --quiet -R - --resolve-alias -r --remove -S --set-version --show-depends -s - --syslog -t --type -V --version -v --verbose' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + if [[ ! $COMPREPLY ]]; then + COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config + -c --showconfig --dump-modversions -d --dirname --first-time + --force-vermagic --force-modversion -f --force -i + --ignore-install --ignore-remove -l --list -n --dry-run -q + --quiet -R --resolve-alias -r --remove -S --set-version + --show-depends -s --syslog -t --type -V --version -v + --verbose' -- "$cur" ) ) + fi + [[ $COMPREPLY == *= ]] && compopt -o nospace return fi diff --git a/test/lib/completions/modprobe.exp b/test/lib/completions/modprobe.exp index a1cd6987..4dccfec5 100644 --- a/test/lib/completions/modprobe.exp +++ b/test/lib/completions/modprobe.exp @@ -11,8 +11,8 @@ proc teardown {} { setup -set test "--remov should complete \"--remove\"" -assert_complete "--remove" "modprobe --remov" $test +set test "--al should complete \"--all\"" +assert_complete "--all" "modprobe --al" $test sync_after_int