diff --git a/antigen.zsh b/antigen.zsh index ce6b68e..1c0e0cc 100644 --- a/antigen.zsh +++ b/antigen.zsh @@ -418,7 +418,17 @@ antigen () { done local keyword_args="$( - echo "$positional_args" | tr , '\n' | sed -r 's/(\??)$/:\1/' + # Positional arguments can double up as keyword arguments too. + echo "$positional_args" | tr , '\n' | + while read line; do + if [[ $line == *\? ]]; then + echo "${line%?}:?" + else + echo "$line:" + fi + done + + # Specified keyword arguments. echo "$spec" | cut -d\; -f2 | tr , '\n' )" local keyword_args_count="$(echo $keyword_args | awk -F, '{print NF}')"