#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] &&
( -o bareglobqual &&
$1 = (#b)(((*[^\\\$]|)(\\\\)#)\()([^\)\|\~]#)$complete &&
${#match[1]} -gt 1 ||
-o extendedglob &&
$1 = (#b)(((*[^\\\$]|)(\\\\)#)"(#q")([^\)]#)$complete
) ]]
Copyright 2K16 - 2K18 Indonesian Hacker Rulez