#autoload

# This searches $* in the array for normal completions and calls the result.
# It is used to include completions for another command or special context
# into the list generated by the calling function.
# For example the function for `-subscript-' could call this as in
# `_contexts -math-' to get the completions that would be generated for a
# mathematical context.

local i tmp ret=1 service or

if [[ $1 = -o ]]; then
  or=yes
  shift
fi

for i; do
  tmp="$_comps[$i]"
  [[ -n "$tmp" ]] && service="${_services[$i]:-$i}" && eval "$tmp" && ret=0
  [[ -n "$or" && ret -eq 0 ]] && return 0
done

return ret
