Browse Source

Auxiliary: bash-completion: use _comp_initialize

_init_completion has been deprecated upstream since 2.12.

https://github.com/scop/bash-completion/blob/main/bash_completion.d/000_bash_completion_compat.bash#L237
Ahmad Samir 1 year ago
parent
commit
1ff41ba26e
1 changed files with 11 additions and 3 deletions
  1. 11 3
      Auxiliary/bash-completion/cmake

+ 11 - 3
Auxiliary/bash-completion/cmake

@@ -3,10 +3,14 @@
 _cmake()
 {
     local is_old_completion=false
+    local is_init_completion=false
 
-    local cur prev words cword split
-    if type -t _init_completion >/dev/null; then
+    local cur prev words cword split was_split
+    if type -t _comp_initialize >/dev/null; then
+        _comp_initialize -s || return
+    elif type -t _init_completion >/dev/null; then
         _init_completion -s || return
+        is_init_completion=true
     else
         # manual initialization for older bash completion versions
         COMPREPLY=()
@@ -193,7 +197,11 @@ _cmake()
             ;;
     esac
 
-    $split && return
+    if  ($is_old_completion || $is_init_completion); then
+        $split && return
+    else
+        [[ $was_split ]] && return
+    fi
 
     if [[ "$cur" == -* ]]; then
         COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )