Auxiliary: Bash-comp: use _init_completion instead of _split_longopt

Using `_init_completion -s` will handle the option splitting and set the
`split` var [1].

Keep setting `split` manually for the older manual bash completion
initialization.

[1] https://github.com/scop/bash-completion/blob/main/bash_completion.d/000_bash_completion_compat.bash#L227
This commit is contained in:
Ahmad Samir
2024-06-02 16:56:22 +03:00
parent 124e50abbd
commit d03b4acaa9

View File

@@ -2,14 +2,18 @@
_cmake()
{
local cur prev words cword split=false
local is_old_completion=false
local cur prev words cword split
if type -t _init_completion >/dev/null; then
_init_completion -n = || return
_init_completion -s || return
else
# manual initialization for older bash completion versions
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
is_old_completion=true
split=false
fi
# Workaround for options like -DCMAKE_BUILD_TYPE=Release
@@ -89,7 +93,9 @@ _cmake()
;;
esac
_split_longopt && split=true
if $is_old_completion; then
_split_longopt && split=true
fi
case "$prev" in
-C|-P|--graphviz|--system-information)