1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| | #autoload
local i os s=2
local -a args
i=${@[(i):]}
(( i > $# )) && i=0
args=(${@[1,i]})
shift $i
case $OSTYPE in
aix*) os=A;;
cygwin*) os=C;;
dragonfly*) os=D;;
freebsd*) os=F;;
hpux*) os=H;;
irix*) os=I;;
linux*) os=L;;
darwin*) os=M;;
netbsd*) os=N;;
openbsd*) os=O;;
solaris*) os=S;;
esac
for 1; do
if [[ $1 == [[:upper:]]## ]]; then
(( s == 2 )) && s=0
[[ $1 == *$os* ]] && s=1
else
(( s )) || continue
args+=($1)
s=2
fi
done
_arguments "$args[@]"
|