@@ -24,7 +24,7 @@ _comp_cmd_rndc()
2424
2525 case $prev in
2626 -c|-k)
27- _comp_compgen -a filedir
27+ _comp_compgen filedir
2828 return
2929 ;;
3030 -s)
@@ -36,12 +36,11 @@ _comp_cmd_rndc()
3636 local REPLY
3737 _comp_count_args
3838 if (( REPLY == 1 )) ; then
39- _comp_compgen -- -W " $( _comp_cmd_rndc__list_commands) "
40- fi
41- if (( REPLY == 2 )) ; then
39+ _comp_compgen_split -- " $( _comp_cmd_rndc__list_commands) "
40+ elif (( REPLY == 2 )) ; then
4241 local PARAMS=" $( _comp_cmd_rndc__list_parameters $prev ) "
4342 if [[ " $PARAMS " == zone ]]; then
44- _comp_compgen -- -W " $( _comp_cmd_named_checkconf__list_zones) "
43+ _comp_compgen_split -- " $( _comp_cmd_named_checkconf__list_zones) "
4544 return
4645 else
4746 _comp_compgen -- -W " $PARAMS "
@@ -55,8 +54,8 @@ _comp_cmd_rndc()
5554
5655_comp_cmd_dig__list_plusopts ()
5756{
58- local CMD=${1:- dig} # delv and mdig has similar style options
59- $CMD -h 2>&1 | awk ' /^\s+\+\[no\]/ { sub("+\\[no\\]", "", $1); sub("=##+$", "=", $1); sub("\\[=##+\\]", "", $1); print "+"$1, "+no"$1} /^\s+\+[^[]/ {sub("=##+", "=", $1); print $1}'
57+ local CMD=" ${1:- dig} " # delv and mdig has similar style options
58+ " $CMD " -h 2>&1 | awk ' /^\s+\+\[no\]/ { sub("+\\[no\\]", "", $1); sub("=##+$", "=", $1); sub("\\[=##+\\]", "", $1); print "+"$1, "+no"$1} /^\s+\+[^[]/ {sub("=##+", "=", $1); print $1}'
6059}
6160
6261_comp_cmd_dig ()
@@ -78,7 +77,7 @@ _comp_cmd_dig()
7877 return
7978 ;;
8079 -k|-f)
81- _comp_compgen -a filedir
80+ _comp_compgen filedir
8281 return
8382 ;;
8483 -x|-b)
@@ -90,15 +89,13 @@ _comp_cmd_dig()
9089 if [[ $cur == -* ]]; then
9190 _comp_compgen_usage
9291 return
93- fi
94- if [[ $cur == @* ]]; then
92+ elif [[ $cur == @* ]]; then
9593 _comp_compgen_known_hosts -- " $cur "
9694 return
97- fi
98- if [[ $cur == +* ]]; then
99- _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts dig) "
95+ elif [[ $cur == +* ]]; then
96+ _comp_compgen_split -- " $( _comp_cmd_dig__list_plusopts dig) "
10097 [[ ${COMPREPLY-} == * = ]] && compopt -o nospace
101-
98+ return
10299 fi
103100
104101 # TODO: dig is tricky. It can accept hostname, queryclass or querytype without any parameter.
@@ -125,7 +122,7 @@ _comp_cmd_mdig()
125122 return
126123 ;;
127124 -f)
128- _comp_compgen -a filedir
125+ _comp_compgen filedir
129126 return
130127 ;;
131128 -x|-b)
@@ -137,13 +134,11 @@ _comp_cmd_mdig()
137134 if [[ $cur == -* ]]; then
138135 _comp_compgen_usage
139136 return
140- fi
141- if [[ $cur == @* ]]; then
137+ elif [[ $cur == @* ]]; then
142138 _comp_compgen_known_hosts -- " $cur "
143139 return
144- fi
145- if [[ $cur == +* ]]; then
146- _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts mdig) "
140+ elif [[ $cur == +* ]]; then
141+ _comp_compgen_split -- " $( _comp_cmd_dig__list_plusopts mdig) "
147142 [[ ${COMPREPLY-} == * = ]] && compopt -o nospace
148143
149144 fi
@@ -172,7 +167,7 @@ _comp_cmd_delv()
172167 return
173168 ;;
174169 -a)
175- _comp_compgen -a filedir
170+ _comp_compgen filedir
176171 return
177172 ;;
178173 -x|-b)
@@ -190,7 +185,7 @@ _comp_cmd_delv()
190185 return
191186 fi
192187 if [[ $cur == +* ]]; then
193- _comp_compgen -- -W " $( _comp_cmd_dig__list_plusopts delv) "
188+ _comp_compgen_split -- " $( _comp_cmd_dig__list_plusopts delv) "
194189 [[ ${COMPREPLY-} == * = ]] && compopt -o nospace
195190
196191 fi
0 commit comments