26763: fix problem on failed cd -s to relative path
[zsh.git] / Completion / Solaris / Command / _pfexec
blob2273362232b0679f7776772616d581e2148ded37
1 #compdef pfexec
3 # This is a _values-like function that completes privileges and !-prefixed
4 # privileges, comma-separated, and unique.
5 _privset() {
6         local expl p
7         local -a privs
9         privs=( ${(f)"$(ppriv -l)"} all none zone basic )
11         # Ignore existing values
12         compset -P '*,'
13         # Ignore a leading !, maybe backslash-quoted
14         compset -P '\\#!'
16         # Remove already-referenced privs
17         for p in ${(s:,:)${IPREFIX//\\#\!/}}; do
18                 privs=( ${privs:#$p} )
19         done
21         _wanted privs expl 'privilege' compadd -qS , -a privs
24 _pfexec() {
25         _arguments \
26                 '-P[privileges to acquire]:privspec:_privset' \
27                 '(-):command name: _command_names -e' \
28                 '*::arguments: _normal'
31 _pfexec "$@"