diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-04-02 11:50:18 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-04-02 11:50:18 +0000 |
commit | 347ef82f1259c8d8e520989b88edb42b7235fb1a (patch) | |
tree | 6f46e5eac11aab41f83e6760b1fff669928b1216 /Completion/Unix/Command | |
parent | f309396b958722bbcc7662574d41d0f088b30a71 (diff) | |
download | zsh-347ef82f1259c8d8e520989b88edb42b7235fb1a.tar.gz zsh-347ef82f1259c8d8e520989b88edb42b7235fb1a.tar.xz zsh-347ef82f1259c8d8e520989b88edb42b7235fb1a.zip |
moved from Completion/User/_finger
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r-- | Completion/Unix/Command/_finger | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_finger b/Completion/Unix/Command/_finger new file mode 100644 index 000000000..4dd45f3c2 --- /dev/null +++ b/Completion/Unix/Command/_finger @@ -0,0 +1,78 @@ +#compdef finger + +local curcontext="$curcontext" state line match +typeset -A opt_args + +if (( ! $+_finger_args )); then + local help="$(_call_program options finger -\? 2>&1)" + local -A optionmap + +## `finger -\?': + +# SunOS 5.7: +# finger: illegal option -- ? +# Usage: finger [-bfhilmpqsw] [-t l|h|l,h] [name1 [name2 ...] ] + +# SunOS 4.1.4: +# Usage: finger [-bfhilmpqsw] [login1 [login2 ...] ] + +# IRIX 6.3: +# Usage: finger [-bfhilmpqsw] [login1 [login2 ...] ] + +# NetBSD 1.4.1: +# finger: illegal option -- ? +# usage: finger [-lmpsho] [login ...] + +# FreeBSD 2.2.8 +# finger: illegal option -- ? +# usage: finger [-lmpshoT] [login ...] + +# BSD/OS 3.0: +# finger: illegal option -- ? +# usage: finger [-lmps] [login ...] + +# 4.4BSD Lite: +# usage: finger [-lmps] [login ...] + +# Debian GNU/Linux (potato) (netstd 3.07-10): +# finger: invalid option -- ? +# usage: finger [-lmps] [login ...] + + if [[ "$help" = *\[-(#b)(lmps[a-zA-Z]#)* ]]; then + # BSD style + optionmap=( + '*m*' '-m[match to login name]' + '*l*' '(-s -o)-l[force long format]' + '*s*' '(-l -p)-s[force short format]' + '*p*' '(-s -o)-p[suppress .forward, .plan and .project]' + '*o*' '(-l -p)-o[print office information]' + '*T*' '-T[disable T/TCP]' + ) + _finger_args=($optionmap[(K)$match[1]]) + elif [[ "$help" = *\[-(#b)(bfhilmpqsw[a-zA-Z]#)* ]]; then + # System V style + optionmap=( + '*m*' '-m[match to login name]' + '*l*' '( -i -q -s -f -w)-l[force long format]' + '*i*' '(-l -q -s -b -h -p -w)-i[force idle format]' + '*q*' '(-l -i -s -b -h -p -w)-q[force quick format]' + '*s*' '(-l -i -q -b -h -p)-s[force short format]' + '*b*' '(-i -q -s)-b[suppress home and shell]' + '*f*' '(-l)-f[suppress header]' + '*h*' '(-i -q -s)-h[suppress .project]' + '*p*' '(-i -q -s)-p[suppress .plan]' + '*w*' '(-i -q -l)-w[suppress full name]' + ) + _finger_args=($optionmap[(K)$match[1]]) + else + _finger_args=() + fi +fi + +_arguments -C -s $_finger_args '*:finger targets:->finger-targets' && return 0 + +case "$state" in +finger-targets) + _user_at_host -t other-accounts "$@" + ;; +esac |