diff --git a/completions-core/apache2ctl.bash b/completions-core/apache2ctl.bash index 08077888c99..17e1f6024df 100644 --- a/completions-core/apache2ctl.bash +++ b/completions-core/apache2ctl.bash @@ -6,10 +6,9 @@ _comp_cmd_apache2ctl() _comp_initialize -- "$@" || return local APWORDS - APWORDS=$("$1" 2>&1 >/dev/null | _comp_awk 'NR<2 { print $3; exit }' | - tr "|" " ") + APWORDS=$("$1" 2>&1 >/dev/null | _comp_awk 'NR < 2 { print $3; exit }') - _comp_compgen -- -W "$APWORDS" + _comp_compgen_split -F $' \t\n|' -- "$APWORDS" } && complete -F _comp_cmd_apache2ctl apache2ctl diff --git a/completions-core/bk.bash b/completions-core/bk.bash index 5a9ec1be8a1..e08b32fde5d 100644 --- a/completions-core/bk.bash +++ b/completions-core/bk.bash @@ -7,7 +7,7 @@ _comp_cmd_bk() _comp_initialize -- "$@" || return local BKCMDS=$(bk help topics 2>/dev/null | - _comp_awk '/^ bk/ { print $2 }' | xargs printf '%s ') + _comp_awk '/^ bk/ { print $2 }') _comp_compgen -- -W "$BKCMDS" _comp_compgen -a filedir diff --git a/completions-core/gcc.bash b/completions-core/gcc.bash index ed5bc9b3297..6ca8934c72c 100644 --- a/completions-core/gcc.bash +++ b/completions-core/gcc.bash @@ -12,7 +12,7 @@ _comp_cmd_gcc() local cc=$("$1" -print-prog-name=cc1 2>/dev/null) [[ $cc ]] || return _comp_compgen_split -- "$("$cc" --help 2>/dev/null | tr '\t' ' ' | - command sed -e '/^ *-/!d' -e 's/ *-\([^][ <>]*\).*/-\1/')" + command sed -n 's/^ \{1,\}\(-[^][ <>]*\).*/\1/p')" [[ ${COMPREPLY-} == *= ]] && compopt -o nospace else _comp_compgen_filedir diff --git a/completions-core/tshark.bash b/completions-core/tshark.bash index 04ed4260a9e..edea1f3341d 100644 --- a/completions-core/tshark.bash +++ b/completions-core/tshark.bash @@ -22,11 +22,10 @@ _comp_cmd_tshark() if [[ $cur == *:* ]]; then _comp_compgen -c "${cur#*:}" filedir else - [[ -v _comp_cmd_tshark__prefs ]] || - _comp_cmd_tshark__prefs=$("$1" -G defaultprefs 2>/dev/null | command sed -ne 's/^#\{0,1\}\([a-z0-9_.-]\{1,\}:\).*/\1/p' | - tr '\n' ' ') - : ${prefix:=} - _comp_compgen -P "$prefix" -- -W "$_comp_cmd_tshark__prefs" + [[ -v _comp_cmd_tshark__mut_prefs ]] || + _comp_cmd_tshark__mut_prefs=$("$1" -G defaultprefs 2>/dev/null | + command sed -ne 's/^#\{0,1\}\([a-z0-9_.-]\{1,\}:\).*/\1/p') + _comp_compgen -P "$prefix" -- -W "$_comp_cmd_tshark__mut_prefs" [[ ${COMPREPLY-} == *: ]] && compopt -o nospace fi return @@ -71,10 +70,10 @@ _comp_cmd_tshark() return ;; -*O) - [[ -v _comp_cmd_tshark__protocols ]] || - _comp_cmd_tshark__protocols=$("$1" -G protocols 2>/dev/null | - cut -f 3 | tr '\n' ' ') - _comp_delimited , -W "$_comp_cmd_tshark__protocols" + [[ -v _comp_cmd_tshark__mut_protocols ]] || + _comp_cmd_tshark__mut_protocols=$("$1" -G protocols 2>/dev/null | + cut -f 3) + _comp_delimited , -W "$_comp_cmd_tshark__mut_protocols" return ;; -*T) diff --git a/completions-core/update-rc.d.bash b/completions-core/update-rc.d.bash index a5040d44724..4c5f6ba82a7 100644 --- a/completions-core/update-rc.d.bash +++ b/completions-core/update-rc.d.bash @@ -17,8 +17,9 @@ _comp_cmd_update_rc_d() options=(-f -n) if [[ $cword -eq 1 || $prev == -* ]]; then + local IFS='|' _comp_compgen -- -W '"${options[@]}" ${services[@]+"${services[@]}"}' \ - -X '$(tr " " "|" <<<${words[@]})' + -X "@(${words[*]}))" elif ((${#services[@]})) && [[ $prev == ?($(tr " " "|" <<<"${services[*]}")) ]]; then _comp_compgen -- -W 'remove defaults start stop' elif [[ $prev == defaults && $cur == [0-9] ]]; then diff --git a/completions-fallback/modules.bash b/completions-fallback/modules.bash index 7e7003468d8..4f7a7164ed6 100644 --- a/completions-fallback/modules.bash +++ b/completions-fallback/modules.bash @@ -53,8 +53,8 @@ _comp_cmd_module() # First parameter on line -- we expect it to be a mode selection local options - options=$(module help 2>&1 | command grep -E '^[[:space:]]*\+' | - _comp_awk '{print $2}' | command sed -e 's/|/ /g' | sort) + options=$(module help 2>&1 | _comp_awk '/^[[:space:]]*\+/ { + $0 = $2; gsub(/\|/, " "); print }' | sort) _comp_compgen -- -W "$options" diff --git a/test/t/test_tshark.py b/test/t/test_tshark.py index d44e62d48c7..d7799323340 100644 --- a/test/t/test_tshark.py +++ b/test/t/test_tshark.py @@ -1,7 +1,6 @@ import pytest -@pytest.mark.bashcomp(ignore_env=r"^\+_comp_cmd_tshark__pr(ef|otocol)s=") class TestTshark: @pytest.mark.complete("tshark -", require_cmd=True) def test_1(self, completion):