Skip to content

Commit b31fe1e

Browse files
committed
fix(dict): protect splitting from custom IFS
1 parent b83b0f5 commit b31fe1e

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

completions/dict

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
# TODO:API: rename per conventions, rework to use vars rather than outputting
44
_dictdata()
55
{
6-
# shellcheck disable=SC2086
7-
dict $host $port $1 2>/dev/null | command sed -ne \
6+
dict "$@" 2>/dev/null | command sed -ne \
87
's/^[[:blank:]]\{1,\}\([^[:blank:]]*\).*$/\1/p'
98
}
109

@@ -13,6 +12,7 @@ _comp_cmd_dict()
1312
local cur prev words cword comp_args
1413
_comp_initialize -- "$@" || return
1514

15+
local -a dict_options=()
1616
local host="" port="" db i
1717

1818
local noargopts='!(-*|*[hpdis]*)'
@@ -21,15 +21,15 @@ _comp_cmd_dict()
2121
case ${words[i]} in
2222
--host | -${noargopts}h)
2323
host=${words[++i]}
24-
[[ $host ]] && host="-h $host"
24+
[[ $host ]] && dict_options+=(-h "$host")
2525
;;
2626
--port | -${noargopts}p)
2727
port=${words[++i]}
28-
[[ $port ]] && port="-p $port"
28+
[[ $port ]] && dict_options+=(-p "$port")
2929
;;
3030
--database | -${noargopts}d)
3131
db=${words[++i]}
32-
[[ $db ]] && host="-d $db"
32+
[[ $db ]] && dict_options+=(-d "$db")
3333
;;
3434
esac
3535
done
@@ -42,11 +42,11 @@ _comp_cmd_dict()
4242
# shellcheck disable=SC2254
4343
case $prev in
4444
--database | -info | -${noargopts}[di])
45-
_comp_compgen_split -- "$(_dictdata -D)"
45+
_comp_compgen_split -- "$(_dictdata "${dict_options[@]}" -D)"
4646
return
4747
;;
4848
--strategy | -${noargopts}s)
49-
_comp_compgen_split -- "$(_dictdata -S)"
49+
_comp_compgen_split -- "$(_dictdata "${dict_options[@]}" -S)"
5050
return
5151
;;
5252
esac

0 commit comments

Comments
 (0)