Use line-break as field separator in compgen words input

This ensures that completions with whitespace are treated as single completion.

Signed-off-by: Toni Kangas <toni.kangas@upcloud.com>
This commit is contained in:
Toni Kangas 2022-06-23 23:46:49 +03:00
parent fbc5c65ae1
commit 3f2dad7403

View file

@ -233,7 +233,8 @@ __%[1]s_handle_standard_completion_case() {
# Short circuit to optimize if we don't have descriptions # Short circuit to optimize if we don't have descriptions
if [[ "${completions[*]}" != *$tab* ]]; then if [[ "${completions[*]}" != *$tab* ]]; then
IFS=$'\n' read -ra COMPREPLY -d '' < <(compgen -W "${completions[*]}" -- "$cur") local compgen_words=$(printf "%%s\n" "${completions[@]}")
IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n' compgen -W "${compgen_words}" -- "$cur")
# If there is a single completion left, escape the completion # If there is a single completion left, escape the completion
if ((${#COMPREPLY[*]} == 1)); then if ((${#COMPREPLY[*]} == 1)); then