#autoload local targs gopt=-J if [[ "$1" = -C?* ]]; then targs=( -C "${1[3,-1]}" ) shift elif [[ "$1" = -C ]]; then targs=( -C "$2" ) shift 2 else targs=() fi if [[ "$1" = -([12]|)[VJ] ]]; then gopt="$1" shift fi _tags "$targs[@]" "$1" while _tags; do _all_labels "$gopt" "$@" && return 0 done return 1