#autoload # Test if $1 has glob qualifiers. This is partly magic, partly guesswork, # wholly flakey. # # If $2 is "complete" test if the qualifiers are complete (up to the ")" # at the end of the word), else that they are incomplete. # Sets match, mbegin, mend to reflect their location. # $match[1] is everything up to the start of the qualifiers themselves; # this may therefore end in "(" or "(#q". # $match[2] is everything at the start not counting the "(" or "(#q". # $match[5] is the set of qualifiers themselves, not including a trailing # parenthesis. local complete [[ $2 = complete ]] && complete=")" [[ -z $compstate[quote] && ( $_comp_caller_options[bareglobqual] == on && $1 = (#b)(((*[^\\\$]|)(\\\\)#)\()([^\)\|\~]#)$complete && ${#match[1]} -gt 1 || $_comp_caller_options[extendedglob] == on && $1 = (#b)(((*[^\\\$]|)(\\\\)#)"(#q")([^\)]#)$complete ) ]]