# HG changeset patch # User Mike Becker # Date 1572097130 -7200 # Node ID fb466ba2edc5af270097183d316e5a4ec3c947a8 # Parent a8117c4feaad7a5eb837b2f1d1be388e6f8923df bash completion now handles spaces correctly in both quoted and unquoted strings diff -r a8117c4feaad -r fb466ba2edc5 scripts/dav-bash-completion.bash --- a/scripts/dav-bash-completion.bash Sat Oct 26 14:55:53 2019 +0200 +++ b/scripts/dav-bash-completion.bash Sat Oct 26 15:38:50 2019 +0200 @@ -1,8 +1,23 @@ +dav_completion_build_args() { + local word + for i in "${!COMP_WORDS[@]}"; do + word="${COMP_WORDS[$i]}" + if [[ "$word" =~ ^\'|^\" ]]; then + printf "%s\0" "$word" + else + echo "$word" | xargs printf "%s" + printf "\0" + fi + done +} + dav_completion() { + local cmd local out local cmd_res - out="$(${COMP_WORDS[0]} complete $COMP_CWORD ${COMP_WORDS[@]})" + cmd="${COMP_WORDS[0]} complete $COMP_CWORD" + out=$(dav_completion_build_args | xargs -0 $cmd) cmd_res=$? if [[ $cmd_res -eq 10 ]]; then