dav_completion_build_args() {
local word
for i in "${!COMP_WORDS[@]}"; do
word="${COMP_WORDS[$i]}"
if [[ "$word" =~ ^\'|^\" ]]; then
printf "%s\n" "$word"
else
echo "$word" | xargs printf "%s"
printf "\n"
fi
done
}
dav_completion() {
local cmd
local out
local cmd_res
cmd="${COMP_WORDS[0]} complete $COMP_CWORD"
out=$(dav_completion_build_args | $cmd 2> /dev/null)
cmd_res=$?
if [[ $cmd_res -eq 10 ]]; then
compopt -o nospace
fi
if [[ $cmd_res -eq 12 ]]; then
compopt -o default
COMPREPLY=()
else
IFS=$'\n' declare -ga 'COMPREPLY=($out)'
fi
}
complete -F dav_completion dav