From 5be1908b56232b3f1236dc6ea75b170ae2826c7a Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Tue, 14 Sep 1999 00:20:36 +0000 Subject: zsh-workers/7817 --- Completion/Debian/_apt | 2 +- Completion/User/_perl_builtin_funcs | 4 ++-- Completion/User/_socket | 30 +++++++++++++++++++++++++----- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Completion/Debian/_apt b/Completion/Debian/_apt index 7654ce1fe..2c1f2af41 100644 --- a/Completion/Debian/_apt +++ b/Completion/Debian/_apt @@ -113,7 +113,7 @@ compadd "$expl_opt[@]" - $tmp2 tmp2=($_ra_left${(M)^short_hasarg:#$~tmp1} $_ra_left${(M)^short_configfile:#$~tmp1} $_ra_left${(M)^short_arbitem:#$~tmp1}) compadd "$expl_opt[@]" -S= - $tmp2' - comp_opt='[[ -prefix - || -z "$compconfig[option_prefix]" ]]'" && { $comp_short; $comp_long }" + comp_opt='[[ -prefix - || -z "$compconfig[option_prefix]" || "$compconfig[option_prefix]" = *\!$words[1]* ]]'" && { $comp_short; $comp_long }" regex_short=() regex_long=() 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[@]" -- cgit 1.4.1