diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-16 04:41:25 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-16 04:41:25 +0000 |
commit | 2883d92b387a1074189fa7143427f2dfec386b8c (patch) | |
tree | ef9c11f1df87163a82f31dba39bb4154b69b5654 | |
parent | 1719ffeef5a15d717e461b732925f9cb2e69f984 (diff) | |
download | zsh-2883d92b387a1074189fa7143427f2dfec386b8c.tar.gz zsh-2883d92b387a1074189fa7143427f2dfec386b8c.tar.xz zsh-2883d92b387a1074189fa7143427f2dfec386b8c.zip |
Initial revision
-rw-r--r-- | Completion/User/_finger | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Completion/User/_finger b/Completion/User/_finger new file mode 100644 index 000000000..9b5760be7 --- /dev/null +++ b/Completion/User/_finger @@ -0,0 +1,78 @@ +#compdef finger + +local curcontext="$curcontext" state line +typeset -A opt_args + +if (( ! $+_finger_args )); then + local help="$(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' + +case "$state" in +finger-targets) + _user_at_host -t other-accounts "$@" + ;; +esac |