diff options
Diffstat (limited to 'Completion/User')
-rw-r--r-- | Completion/User/_perl_builtin_funcs | 4 | ||||
-rw-r--r-- | Completion/User/_socket | 30 |
2 files changed, 27 insertions, 7 deletions
diff --git a/Completion/User/_perl_builtin_funcs b/Completion/User/_perl_builtin_funcs index a8facda08..f7fcae883 100644 --- a/Completion/User/_perl_builtin_funcs +++ b/Completion/User/_perl_builtin_funcs @@ -12,13 +12,13 @@ if [[ ${+_perl_builtin_funcs} -eq 0 ]]; then typeset -agU _perl_builtin_funcs local perlfunc - if perlfunc=`man -w perlfunc 2>&1`; then + if [[ -n "${perlfunc:=$(man -w perlfunc 2>/dev/null; print -l ${^manpath}/man1/perlfunc.1(N) {/usr/man,/usr/local/man}/man1/perlfunc.1(N))}" ]]; then _perl_builtin_funcs=( `perl -lne ' $in_funcs++, next if /Alphabetical/; \ next unless $in_funcs; \ if (/^\.Ip "(\w+)/) { \ print $1 unless $func{$1}; $func{$1}++ \ - }' $perlfunc` + }' $=perlfunc` ) else echo "Couldn't find perlfunc man page; giving up." diff --git a/Completion/User/_socket b/Completion/User/_socket index ff8009ea1..9b1caab73 100644 --- a/Completion/User/_socket +++ b/Completion/User/_socket @@ -8,22 +8,42 @@ local state line expl typeset -A options +if [[ $CURRENT -eq 2 && ( + -z "$compconfig[option_prefix]" || + "$compconfig[option_prefix]" = *\!${words[1]}* || + "$PREFIX" = -* ) ]]; then + _description expl option + compadd -M 'r:|[_-]=* r:|=*' "$expl[@]" - -version +fi + _arguments -s \ - -{b,c,f,q,r,v,w} \ - -{s,l} \ - '-p:command:->command' \ + '-b[background]' \ + '-c[crlf]' \ + '-f[fork]' \ + '-q[quit]' \ + '-r[read only]' \ + '-v[verbose]' \ + '-w[write only]' \ + '-s[server]' \ + '-l[loop]' \ + '-p[program]:command:->command' \ ':arg1:->arg1' \ ':arg2:->arg2' case "$state" in command) compset -q - _normal + if [[ $CURRENT -eq 1 ]]; then + _command_names -e "$@" + else + _normal + fi ;; arg1) if (( $+options[-s] )); then - _message 'port to listen' + _description expl 'port to listen' + _ports "$expl[@]" else _description expl 'host' _combination socket_hosts_ports hosts "$expl[@]" |