about summary refs log tree commit diff
path: root/Completion/Base/Utility/_contexts
blob: f0e5ba874959c4d7382cb2a549d9bf3934980a15 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#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