Skip to content

Commit 9618298

Browse files
committed
refactor: rename { => _comp_compgen}_variables
1 parent a61192b commit 9618298

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

bash_completion

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,8 +1136,8 @@ _comp__split_longopt()
11361136
# Complete variables.
11371137
# @return True (0) if variables were completed,
11381138
# False (> 0) if not.
1139-
# TODO:API: rename per conventions
1140-
_variables()
1139+
# @since 2.12
1140+
_comp_compgen_variables()
11411141
{
11421142
if [[ $cur =~ ^(\$(\{[!#]?)?)([A-Za-z0-9_]*)$ ]]; then
11431143
# Completing $var / ${var / ${!var / ${#var
@@ -1148,10 +1148,10 @@ _variables()
11481148
if ((${#vars[@]} == 1 && ${#arrs[@]} != 0)); then
11491149
# Complete ${arr with ${array[ if there is only one match, and that match is an array variable
11501150
compopt -o nospace
1151-
COMPREPLY+=("${arrs[@]}")
1151+
_comp_compgen -U vars -U arrs -R -- -W '"${arrs[@]}"'
11521152
else
11531153
# Complete ${var with ${variable}
1154-
COMPREPLY+=("${vars[@]}")
1154+
_comp_compgen -U vars -U arrs -R -- -W '"${vars[@]}"'
11551155
fi
11561156
else
11571157
# Complete $var with $variable
@@ -1160,18 +1160,23 @@ _variables()
11601160
return 0
11611161
elif [[ $cur =~ ^(\$\{[#!]?)([A-Za-z0-9_]*)\[([^]]*)$ ]]; then
11621162
# Complete ${array[i with ${array[idx]}
1163-
_comp_compgen -ac "${BASH_REMATCH[3]}" -- -W '"${!'"${BASH_REMATCH[2]}"'[@]}"' \
1163+
local vars
1164+
_comp_compgen -v vars -c "${BASH_REMATCH[3]}" -- -W '"${!'"${BASH_REMATCH[2]}"'[@]}"' \
11641165
-P "${BASH_REMATCH[1]}${BASH_REMATCH[2]}[" -S ']}'
11651166
# Complete ${arr[@ and ${arr[*
11661167
if [[ ${BASH_REMATCH[3]} == [@*] ]]; then
1167-
COMPREPLY+=("${BASH_REMATCH[1]}${BASH_REMATCH[2]}[${BASH_REMATCH[3]}]}")
1168+
vars+=("${BASH_REMATCH[1]}${BASH_REMATCH[2]}[${BASH_REMATCH[3]}]}")
1169+
fi
1170+
# array indexes may have colons
1171+
if ((${#vars[@]})); then
1172+
_comp_compgen -U vars -c "$cur" ltrim_colon "${vars[@]}"
1173+
else
1174+
_comp_compgen_set
11681175
fi
1169-
_comp_ltrim_colon_completions "$cur" # array indexes may have colons
11701176
return 0
11711177
elif [[ $cur =~ ^\$\{[#!]?[A-Za-z0-9_]*\[.*\]$ ]]; then
11721178
# Complete ${array[idx] with ${array[idx]}
1173-
COMPREPLY+=("$cur}")
1174-
_comp_ltrim_colon_completions "$cur"
1179+
_comp_compgen -c "$cur" ltrim_colon "$cur}"
11751180
return 0
11761181
fi
11771182
return 1
@@ -1284,7 +1289,7 @@ _comp_variable_assignments()
12841289
_comp_delimited : -W '$(locale -a 2>/dev/null)'
12851290
;;
12861291
*)
1287-
_variables && return 0
1292+
_comp_compgen_variables && return 0
12881293
_comp_compgen -a filedir
12891294
;;
12901295
esac
@@ -1355,7 +1360,7 @@ _comp_initialize()
13551360
_comp_get_words -n "$exclude<>&" cur prev words cword
13561361

13571362
# Complete variable names.
1358-
_variables && return 1
1363+
_comp_compgen_variables && return 1
13591364

13601365
# Complete on files if current is a redirect possibly followed by a
13611366
# filename, e.g. ">foo", or previous is a "bare" redirect, e.g. ">".

bash_completion.d/000_bash_completion_compat.bash

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ _comp_deprecate_func 2.12 _get_comp_words_by_ref _comp_get_words
1313
_comp_deprecate_func 2.12 _known_hosts_real _comp_compgen_known_hosts
1414
_comp_deprecate_func 2.12 _longopt _comp_longopt
1515
_comp_deprecate_func 2.12 __ltrim_colon_completions _comp_ltrim_colon_completions
16+
_comp_deprecate_func 2.12 _variables _comp_compgen_variables
1617
_comp_deprecate_func 2.12 _signals _comp_compgen_signals
1718
_comp_deprecate_func 2.12 _mac_addresses _comp_compgen_mac_addresses
1819
_comp_deprecate_func 2.12 _available_interfaces _comp_compgen_available_interfaces

0 commit comments

Comments
 (0)