#autoload local __gopt=-J __len __tmp __pre __suf __ret=1 __descr __spec __prev if [[ "$1" = - ]]; then __prev=- shift fi if [[ "$1" = -([12]|)[VJ] ]]; then __gopt="$1" shift fi __tmp=${argv[(ib:4:)-]} __len=$# if [[ __tmp -lt __len ]]; then __pre=$(( __tmp-1 )) __suf=$__tmp elif [[ __tmp -eq $# ]]; then __pre=-2 __suf=$(( __len+1 )) else __pre=4 __suf=5 fi while comptags "-A$__prev" "$1" curtag __spec; do _comp_tags="$_comp_tags $__spec " if [[ "$curtag" = *:* ]]; then zformat -f __descr "${curtag#*:}" "d:$3" _description "$__gopt" "${curtag%:*}" "$2" "$__descr" curtag="${curtag%:*}" "$4" "${(P@)2}" "${(@)argv[5,-1]}" && __ret=0 else _description "$__gopt" "$curtag" "$2" "$3" "${(@)argv[4,__pre]}" "${(P@)2}" "${(@)argv[__suf,-1]}" && __ret=0 fi done return __ret