]> git.phdru.name Git - dotfiles.git/commitdiff
.shellrc: Check static completion in addition to dynamic
authorOleg Broytman <phd@phdru.name>
Sun, 19 Jul 2020 22:17:05 +0000 (01:17 +0300)
committerOleg Broytman <phd@phdru.name>
Sun, 19 Jul 2020 22:17:05 +0000 (01:17 +0300)
.shellrc

index 8876507d44808c5d1e554b77df5f1449df804c28..0549c17a705e5ea004ccb4a3acd4e7fcff99d821 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -70,20 +70,20 @@ if test -n "$BASH_VERSION"; then
    if [ -z "$BASH_COMPLETION_COMPAT_DIR" ]; then
       if [ -d /usr/share/bash-completion -a -r /usr/share/bash-completion/bash_completion ]; then
          . /usr/share/bash-completion/bash_completion
-         has_completion() { [ -r /usr/share/bash-completion/completions/$1 ]; }
+         has_completion() { [ -r /usr/share/bash-completion/completions/$1 -o -n "complete -p $1 2>/dev/null" ]; }
       elif [ -r /etc/bash_completion ]; then
          . /etc/bash_completion
-         has_completion() { [ -r /etc/bash_completion.d/$1 ]; }
+         has_completion() { [ -r /etc/bash_completion.d/$1 -o -n "complete -p $1 2>/dev/null" ]; }
       elif [ -d /etc/bash_completion.d ]; then
          for _compf in /etc/bash_completion.d/*; do
             . $_compf
          done
-         has_completion() { [ -r /etc/bash_completion.d/$1 ]; }
+         has_completion() { [ -r /etc/bash_completion.d/$1 -o -n "complete -p $1 2>/dev/null" ]; }
       elif [ -d /usr/local/etc/bash_completion.d ]; then
          for _compf in /usr/local/etc/bash_completion.d/*; do
             . $_compf
          done
-         has_completion() { [ -r /usr/local/etc/bash_completion.d/$1 ]; }
+         has_completion() { [ -r /usr/local/etc/bash_completion.d/$1 -o -n "complete -p $1 2>/dev/null" ]; }
       else
          echo "Unknown OS type, cannot source bash_completion" >&2
       fi