diff --git a/bash_completions.go b/bash_completions.go index 8aac92b14..269184d08 100644 --- a/bash_completions.go +++ b/bash_completions.go @@ -72,7 +72,9 @@ __%[1]s_handle_reply() else allflags=("${flags[*]} ${two_word_flags[*]}") fi - mapfile -t COMPREPLY < <(compgen -W "${allflags[*]}" -- "$cur") + COMPREPLY=() + while IFS='' read -r line; do COMPREPLY+=("$line"); done < <(compgen -W "${allflags[*]}" -- "$cur") + if [[ $(type -t compopt) = "builtin" ]]; then [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace fi @@ -122,10 +124,12 @@ __%[1]s_handle_reply() if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then completions+=("${must_have_one_flag[@]}") fi - mapfile -t COMPREPLY < <(compgen -W "${completions[*]}" -- "$cur") + COMPREPLY=() + while IFS='' read -r line; do COMPREPLY+=("$line"); done < <(compgen -W "${completions[*]}" -- "$cur") if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then - mapfile -t COMPREPLY < <(compgen -W "${noun_aliases[*]}" -- "$cur") + COMPREPLY=() + while IFS='' read -r line; do COMPREPLY+=("$line"); done < <(compgen -W "${noun_aliases[*]}" -- "$cur") fi if [[ ${#COMPREPLY[@]} -eq 0 ]]; then @@ -160,7 +164,7 @@ __%[1]s_handle_filename_extension_flag() __%[1]s_handle_subdirs_in_dir_flag() { local dir="$1" - pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || exit + pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return } __%[1]s_handle_flag()