From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15211 invoked by alias); 13 Apr 2017 15:51:54 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40965 Received: (qmail 9752 invoked from network); 13 Apr 2017 15:51:54 -0000 X-Qmail-Scanner-Diagnostics: from nm34.bullet.mail.ir2.yahoo.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(212.82.96.59):SA:0(-2.8/5.0):. Processed in 1.276424 secs); 13 Apr 2017 15:51:54 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: okiddle@yahoo.co.uk X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.mail.yahoo.com designates 212.82.96.59 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1492098270; bh=BWdEE0Q74VJTURwjRQaH0virOxGQoioiHrw4q2VatQo=; h=In-reply-to:From:References:To:Subject:Date:From:Subject; b=olBeHazaNx9m1qPEaU1aE+rK+a5WdYRl0uK6qGnqxy5GW0Y/2dm/veacAj1Sdmhc/UN5Z8E+2UGjwIvL0WxqwUG+pou8bp0Au1hb8FEF1UQ31Hel2KRiC4fgMYxAdGEejz7x+UC2Gk6dD1+YPW+7d6WeOAlXp9CXzttmKMzyUM/ksHu38fb9UTQjXB1p5h3p7botz0s/4zE3b+R+MmTnfIZnVCoNFsaFcIDko473p0l0QXKSv3zgx1PSHlGXGAvrI63Ync2yy7MUSazdNJ4+O/rjwFFbky8BLcr4YqcvCroFdDEbsOzX9aVEPUaknWdnbmXIhyRk+v1CBxQK2m1Pjw== X-Yahoo-Newman-Id: 308223.29774.bm@smtp146.mail.ir2.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: 9SzPr7sVM1mQJiIRlhGSd9on5nwoBQ_R5fq2KMFqQKYKN33 OTYrplAWPzIEmajva8MSeo6B.akiTGqr3w2jc14j2cd4pOS5aa5rg5aO2lS2 XxJrjzqO7mwS4.QAZCfpXyrTiE7liRDXlRhAk7_hGNZUYOz6qbynqLiv2.mj 3I1YojlV7liirJp0V8Fa7Axd5b4wdsrW5gkxTSGroaOC9pJDSZmOC954b5cY KCudW1LlGQoAqCMdjquglP3jg8fM3Qg6F44HgUhalwAMQ2zhuMjaxPXMd3oI sPCNjd3rfavMq7vIAD7WtesCcqyVAlRdTL1cngVi87LRKNCHLEqrKzxv5e7Q sG8_8_.Pcgx4mIlQUYy70QWjCCnwKG_3V9_azu9pBfdznQXFo.pS17v75.fF 25v6VaHZRpJFM5MrBZdf5_ch0KjK2mYgK_Zvm4ctJBlgt5zOt_O3Ly4wZKYT 043G4oSWPTdHifc1JeTtbXU1YeS0n.N9hyzwZ875DYY5H5VB_HC1bzMEY9zg Ay6yZrwBBJwY4iHP_cdHWczmNheHf8GD2BWkam1F9 X-Yahoo-SMTP: opAkk_CswBAce_kJ3nIPlH80cJI- In-reply-to: <170409114724.ZM29567@torch.brasslantern.com> From: Oliver Kiddle References: <170409114724.ZM29567@torch.brasslantern.com> To: zsh-workers@zsh.org Subject: Re: Incorrect use of "expl" ? MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <34486.1492098269.1@hydra.kiddle.eu> Date: Thu, 13 Apr 2017 17:44:29 +0200 Message-ID: <34487.1492098269@hydra.kiddle.eu> On 9 Apr, Bart wrote: > "expl" (usually by passing to _wanted or _requested, but sometimes by > e.g. "$expl[@]") without declaring it local. Given that the name "expl" > is asserted only to be a convention, most of these are probably wrong. Yes, most are wrong. Maybe _main_complete should declare it local just to avoid leaking it. Might also be nice to make use of private. There are cases where we reference expl inside an _arguments spec that uses braces - something like: _arguments '1:val:{ compadd "$expl[@]" words }' That's a bit of a hack really: we're digging into what should be _arguments internals. Perhaps we could contrive to make "$@" work in such cases. I've left these alone. Apart from _iftop, I didn't get too badly side-tracked on fixing other bits of these functions. I did briefly scan them for other common errors like $curcontext and return status. Oliver diff --git a/Completion/BSD/Command/_portmaster b/Completion/BSD/Command/_portmaster index 4c16e2d1b..48390c9ad 100644 --- a/Completion/BSD/Command/_portmaster +++ b/Completion/BSD/Command/_portmaster @@ -5,7 +5,7 @@ _portmaster_pkgs() { } _portmaster_ports() { - local ret=1 _fbsd_ports _fbsd_cat + local expl ret=1 _fbsd_ports _fbsd_cat _fbsd_cat=(${PORTSDIR:-/usr/ports}/[a-z]*(/:t)) if [[ $PREFIX != */* ]] ; then _wanted cat_packages expl 'category/ports' compadd -S '/' $_fbsd_cat diff --git a/Completion/Debian/Command/_a2utils b/Completion/Debian/Command/_a2utils index 46126282f..8ee30ecf1 100644 --- a/Completion/Debian/Command/_a2utils +++ b/Completion/Debian/Command/_a2utils @@ -1,6 +1,6 @@ #compdef a2ensite a2dissite a2enmod a2dismod -local -a mods +local -a expl mods case "$service" in a2ensite) @@ -21,4 +21,4 @@ case "$service" in ;; esac -return 0 +return diff --git a/Completion/Debian/Command/_apt b/Completion/Debian/Command/_apt index cd0783b4f..074fb0164 100644 --- a/Completion/Debian/Command/_apt +++ b/Completion/Debian/Command/_apt @@ -525,7 +525,7 @@ _apt-cache () { --installed:bool \ -- \ /$'help\0'/ \| \ - /$'add\0'/ /$'[^\0]#\0'/ ':files:index files:_files "$expl[@]"' \# \| \ + /$'add\0'/ /$'[^\0]#\0'/ ':files:index files:_files' \# \| \ /$'gencaches\0'/ \| \ /$'showpkg\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ /$'showsrc\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \ @@ -595,10 +595,10 @@ _apt-config () { /$'shell\0'/ \ \( \ /$'[^\0]#\0'/ ':parameters:shell variable to assign:_parameters' \ - /$'[^\0]#\0'/ ':values:configuration key:compadd "$expl[@]" - ${${(f)"$(apt-config dump 2>&1)"}% *}' \ + /$'[^\0]#\0'/ ':values:configuration key:compadd - ${${(f)"$(apt-config dump 2>&1)"}% *}' \ \) \# \| \ /$'dump\0'/ \| \ - /"[]"/ ':argument-1:action:compadd "$expl[@]" shell dump' + /"[]"/ ':argument-1:action:compadd shell dump' _apt-config "$@" } diff --git a/Completion/Debian/Command/_lighttpd b/Completion/Debian/Command/_lighttpd index 7f4385b90..c24b42d13 100644 --- a/Completion/Debian/Command/_lighttpd +++ b/Completion/Debian/Command/_lighttpd @@ -1,16 +1,16 @@ #compdef lighty-enable-mod lighty-disable-mod -local -a mods +local -a mods expl case "$service" in lighty-enable-mod) mods=( `echo /etc/lighttpd/conf-available/*.conf(N:r:t) | sed -e 's/\b[0-9][0-9]-//g'` ) - _wanted mods expl mods compadd -a mods + _wanted mods expl mod compadd -a mods ;; lighty-disable-mod) mods=( `echo /etc/lighttpd/conf-enabled/*.conf(N:r:t) | sed -e 's/\b[0-9][0-9]-//g'` ) - _wanted mods expl mods compadd -a mods + _wanted mods expl mod compadd -a mods ;; esac -return 0 +return diff --git a/Completion/Debian/Command/_lintian b/Completion/Debian/Command/_lintian index 16af5085b..d60acc9ed 100644 --- a/Completion/Debian/Command/_lintian +++ b/Completion/Debian/Command/_lintian @@ -1,6 +1,6 @@ #compdef lintian lintian-info -local line cmds ret=1 +local curcontext="$curcontext" state line expl cmds ret=1 case "$service" in (lintian) @@ -55,7 +55,7 @@ case "$service" in (args) case $line[1] in -t|--tags) - _wanted tag expl 'tag' compadd $(command awk '/^Tag:/ { print $2 }' /usr/share/lintian/checks/*.desc) && ret=0 + _wanted tags expl 'tag' compadd $(command awk '/^Tag:/ { print $2 }' /usr/share/lintian/checks/*.desc) && ret=0 ;; esac ;; diff --git a/Completion/Debian/Command/_wajig b/Completion/Debian/Command/_wajig index 350eee658..26d08cfd7 100644 --- a/Completion/Debian/Command/_wajig +++ b/Completion/Debian/Command/_wajig @@ -1,6 +1,6 @@ #compdef wajig -local curcontext="$curcontext" state line cmds argno ret=1 +local curcontext="$curcontext" state line expl cmds argno ret=1 _arguments -C -s \ '(- 1 *)'{-h,--help}'[print usage message]' \ diff --git a/Completion/Debian/Type/_deb_architectures b/Completion/Debian/Type/_deb_architectures index 22c43dd3e..1429112a8 100644 --- a/Completion/Debian/Type/_deb_architectures +++ b/Completion/Debian/Type/_deb_architectures @@ -1,6 +1,6 @@ #autoload -local extra +local extra expl zparseopts -E -D -a extra a: _description architectures expl 'architecture' diff --git a/Completion/Debian/Type/_debbugs_bugnumber b/Completion/Debian/Type/_debbugs_bugnumber index f7b09054d..85e0c60d6 100644 --- a/Completion/Debian/Type/_debbugs_bugnumber +++ b/Completion/Debian/Type/_debbugs_bugnumber @@ -1,6 +1,8 @@ #autoload # TODO: use _describe with some basic metadata (e.g., bug title/package/version) +local expl + [[ $PREFIX$SUFFIX == [0-9]# ]] || return 1 # The cache directory moved; try both locations. diff --git a/Completion/Linux/Command/_ethtool b/Completion/Linux/Command/_ethtool index 5d607741f..71f5ed3bf 100644 --- a/Completion/Linux/Command/_ethtool +++ b/Completion/Linux/Command/_ethtool @@ -1,6 +1,6 @@ #compdef ethtool -local -a cmds +local -a expl cmds if [[ $CURRENT -ge 4 ]]; then case $words[CURRENT-1] in diff --git a/Completion/Solaris/Command/_svcadm b/Completion/Solaris/Command/_svcadm index 347e25e2a..c9826f2eb 100644 --- a/Completion/Solaris/Command/_svcadm +++ b/Completion/Solaris/Command/_svcadm @@ -1,7 +1,7 @@ #compdef svcadm _svcadm() { - local context state line subcmds + local curcontext="$curcontext" state line expl subcmds typeset -A opt_args subcmds=( enable disable restart refresh mark delegate clear milestone ) diff --git a/Completion/Solaris/Command/_svccfg b/Completion/Solaris/Command/_svccfg index 08c5e4bcd..d31682e77 100644 --- a/Completion/Solaris/Command/_svccfg +++ b/Completion/Solaris/Command/_svccfg @@ -14,7 +14,7 @@ _svccfg_properties() { # Get all the property names for the FMRI props=( ${${${(f)"$(svccfg -s $fmri describe)"}:# *}%% *} ) - _multi_parts "$expl[@]" - / props + _multi_parts "$@" - / props } _svccfg() { diff --git a/Completion/Solaris/Type/_svcs_fmri b/Completion/Solaris/Type/_svcs_fmri index 80d3516c0..ffade6985 100644 --- a/Completion/Solaris/Type/_svcs_fmri +++ b/Completion/Solaris/Type/_svcs_fmri @@ -2,7 +2,7 @@ _svcs_fmri() { local type="$argv[$#]" - local fmri_abbrevs m i + local fmri_abbrevs m i expl typeset -a -g _smf_fmris local update_policy diff --git a/Completion/Unix/Command/_cdrdao b/Completion/Unix/Command/_cdrdao index 0c3cfb82e..ceb86267c 100644 --- a/Completion/Unix/Command/_cdrdao +++ b/Completion/Unix/Command/_cdrdao @@ -262,14 +262,14 @@ _cdrdao-copy () { __cdrdao-device () { # Use cdrdao scanbus and also check what OS we're running under and provide # additional stuff, like devices (/dev/sg0) - local -a devices + local -a expl devices devices=(${${(f)"$(_call_program devices cdrdao scanbus -v 0 2>&1)"}%% :*}) _wanted devices expl 'device' compadd -a devices } __cdrdao-drivers () { - local suf + local expl suf local -Ua drivers drivers=(${(f)"$(_call_program drivers cut -d'\|' -f4 /usr/share/cdrdao/drivers -s)"}) if compset -P \*:; then diff --git a/Completion/Unix/Command/_darcs b/Completion/Unix/Command/_darcs index d40ecda28..74734711d 100644 --- a/Completion/Unix/Command/_darcs +++ b/Completion/Unix/Command/_darcs @@ -13,6 +13,8 @@ ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. +local expl + if (($CURRENT == 2)); then # We're completing the first word after "darcs" -- the command. _wanted command expl 'darcs command' \ diff --git a/Completion/Unix/Command/_iftop b/Completion/Unix/Command/_iftop index 41ffb4ea1..05db3fa03 100644 --- a/Completion/Unix/Command/_iftop +++ b/Completion/Unix/Command/_iftop @@ -1,9 +1,16 @@ #compdef iftop _interfaces () { - _wanted interfaces expl 'network interface' \ - _net_interfaces - _values "Pseudo-device that captures on all interfaces" "any" + local disp expl sep + _description interfaces expl 'network interface' + _net_interfaces "$expl[@]" + if zstyle -t ":completion:${curcontext}:interfaces" verbose; then + zstyle -s ":completion:${curcontext}:interfaces" list-separator sep || sep=-- + disp=( "any $sep capture on all interfaces" ) + compadd "$expl[@]" -ld disp any + else + compadd "$expl[@]" any + fi } _arguments \ @@ -14,7 +21,7 @@ _arguments \ -P'[turn on port display]' \ -b"[don't display bar graphs of traffic]" \ -B'[display bandwidth rates in bytes/sec rather than bits/sec]' \ - -i'[interface]:network interface:_interfaces' \ - -f'[filter]:BPF filter' \ - -F'[net/mask]:network/mask' \ - -c'[config file]:config file:_files' + '-i+[interface]:network interface:_interfaces' \ + '-f+[filter]:BPF filter' \ + '-F+[net/mask]:network/mask' \ + '-c+[config file]:config file:_files' diff --git a/Completion/Unix/Command/_lha b/Completion/Unix/Command/_lha index c2d5e7d8d..e8d47fcdb 100644 --- a/Completion/Unix/Command/_lha +++ b/Completion/Unix/Command/_lha @@ -1,5 +1,7 @@ #compdef lha +local expl + if (( CURRENT == 2 )); then compset -P - diff --git a/Completion/Unix/Command/_lsof b/Completion/Unix/Command/_lsof index c12b9910a..bbb6eab59 100644 --- a/Completion/Unix/Command/_lsof +++ b/Completion/Unix/Command/_lsof @@ -1,6 +1,6 @@ #compdef lsof -local curcontext="$curcontext" state line fields args +local curcontext="$curcontext" state line expl fields args case $OSTYPE in linux*) args=( '-X[skip reporting of info on network connections]' ) ;; diff --git a/Completion/Unix/Command/_pkg-config b/Completion/Unix/Command/_pkg-config index dd73c79e9..43773967e 100644 --- a/Completion/Unix/Command/_pkg-config +++ b/Completion/Unix/Command/_pkg-config @@ -1,6 +1,6 @@ #compdef pkg-config -local arguments packages curcontext="$curcontext" state line ret=1 +local arguments packages curcontext="$curcontext" state line expl ret=1 declare -A opt_args # Up-to-date as of pkg-config 0.29-4 (debian package) man page synopsis diff --git a/Completion/Unix/Command/_rrdtool b/Completion/Unix/Command/_rrdtool index 9d097bd77..96bdaf0db 100644 --- a/Completion/Unix/Command/_rrdtool +++ b/Completion/Unix/Command/_rrdtool @@ -1,23 +1,25 @@ #compdef rrdtool -_arguments \ +local curcontext="$curcontext" state line expl ret=1 + +_arguments -C \ ':rrdtool command:(create update updatev graph dump restore last lastupdate first help info fetch tune resize xport)' \ - '*::subcmd:->subcmd' && return 0 + '*:: :->subcmds' && ret=0 +curcontext="${curcontext%:*}-$words[1]:" case "$state" in - (subcmd) - - case "$words[1]" in + (subcmds) + case "$words[1]" in (help) - _wanted -V 'subcommands' expl 'subcommand' compadd \ - create update updatev graph dump restore last lastupdate \ - first help info fetch tune resize xport - ;; + _wanted -V 'subcommands' expl 'subcommand' compadd \ + create update updatev graph dump restore last lastupdate \ + first help info fetch tune resize xport + ;; (*) - _files - ;; - esac + _files + ;; + esac ;; esac diff --git a/Completion/Unix/Command/_stgit b/Completion/Unix/Command/_stgit index f313f651a..7d6ed129f 100644 --- a/Completion/Unix/Command/_stgit +++ b/Completion/Unix/Command/_stgit @@ -4,7 +4,7 @@ typeset -a subcmds subcmds=( ${${${(M)${(f)"$(stg help 2> /dev/null)"}## *}# }/#(#b)([^[:space:]]##)[[:space:]]##(*)/$match[1]:$match[2]} ) -local curcontext="$curcontext" +local curcontext="$curcontext" expl local subcmd local ret=1 @@ -18,17 +18,17 @@ else case $subcmd in (push) - _wanted -V "unapplied patches" expl "patch" \ + _wanted -V unapplied-patches expl "patch" \ compadd ${${(M)${(f)"$(stg series 2> /dev/null)"}##- *}#- } \ && ret=0 ;; (pop) - _wanted -V "applied patches" expl "patch" \ + _wanted -V applied-patches expl "patch" \ compadd ${${(M)${(f)"$(stg series 2> /dev/null)"}##[+>] *}#[+>] } \ && ret=0 ;; (edit|files|goto|rename|log|float|delete|sink|mail|sync|show|pick|hide) - _wanted -V "patches" expl "patch" \ + _wanted -V patches expl "patch" \ compadd $(stg series --noprefix 2> /dev/null) \ && ret=0 ;; @@ -36,7 +36,7 @@ else last_word="$words[$CURRENT-1]" refresh_patch_options=( -p --patch ) if [[ -n ${refresh_patch_options[(r)$last_word]} ]]; then - _wanted -V "applied patches" expl "patch" \ + _wanted -V applied-patch expl "patch" \ compadd ${${(M)${(f)"$(stg series 2> /dev/null)"}##[+>] *}#[+>] } \ && ret=0 else diff --git a/Completion/Unix/Command/_tcpdump b/Completion/Unix/Command/_tcpdump index e1c38f802..79f58fe5f 100644 --- a/Completion/Unix/Command/_tcpdump +++ b/Completion/Unix/Command/_tcpdump @@ -53,7 +53,7 @@ _time_stamp_types () { } _data_link_types () { - local vals + local vals expl if (( $+opt_args[-i] )); then vals=( ${${${(s: :)"$(_call_program data-link-types tcpdump -L -i $opt_args[-i] 2>&1)"}[2,-1]}/ /:} ) _describe -t data-link-types "data link type ($opt_args[-i])" vals diff --git a/Completion/Unix/Command/_texinfo b/Completion/Unix/Command/_texinfo index 7b66d6304..57e13bdc2 100644 --- a/Completion/Unix/Command/_texinfo +++ b/Completion/Unix/Command/_texinfo @@ -227,7 +227,7 @@ esac if [[ -n $state ]]; then local chr cache file q - local -a suf tags + local -a expl suf tags local -i36 hash=5381 local -aU infopath=( /usr/share/info ${commands[info]:h:h}/share/info ${(s.:.)INFOPATH} $infodirs ) infopath=( $^infopath(N) ) diff --git a/Completion/Unix/Command/_units b/Completion/Unix/Command/_units index d049d22ab..bea77ae67 100644 --- a/Completion/Unix/Command/_units +++ b/Completion/Unix/Command/_units @@ -1,6 +1,6 @@ #compdef units -local curcontext="$curcontext" state line +local curcontext="$curcontext" state line expl integer ret=1 typeset -A opt_args diff --git a/Completion/Unix/Command/_yafc b/Completion/Unix/Command/_yafc index edc7c417f..1e0a601a1 100644 --- a/Completion/Unix/Command/_yafc +++ b/Completion/Unix/Command/_yafc @@ -30,7 +30,7 @@ _yafc_bookmarks() { local bkmfile=~/.yafc/bookmarks if [[ -f $bkmfile ]]; then - local -a bkms + local -a bkms expl bkms=(${${${(M)"${(f)$(<$bkmfile)}":#machine*alias ##\'*\' #}##machine*alias ##\'}%%\' #}) #" vim syntax goes crazy _wanted bookmarks expl 'bookmarks' compadd "$@" -a - bkms fi diff --git a/Completion/Unix/Type/_absolute_command_paths b/Completion/Unix/Type/_absolute_command_paths index e08ca56df..0d52ff851 100644 --- a/Completion/Unix/Type/_absolute_command_paths +++ b/Completion/Unix/Type/_absolute_command_paths @@ -9,7 +9,7 @@ _hashed_absolute_command_paths() { do local -a matches=( "${(@)commands[(R)${~i}[^/]#]}" ) local -a descs=( $matches:t ) - compadd -M "l:|=$i" -d descs "$expl[@]" -a matches + compadd -M "l:|=$i" -d descs "$@" -a matches ret=0 done return ret diff --git a/Completion/X/Command/_setxkbmap b/Completion/X/Command/_setxkbmap index d192cc17a..f7310ecdd 100644 --- a/Completion/X/Command/_setxkbmap +++ b/Completion/X/Command/_setxkbmap @@ -55,7 +55,7 @@ _setxkbmap_files () { local dir="$1" local label="$2" - local -a fullpath shortpath + local -a fullpath shortpath expl fullpath=($sourcedir/$dir/**/*~*README(.)) shortpath=(${fullpath#$sourcedir\/$dir\/}) @@ -82,7 +82,7 @@ _setxkbmap_geometry () { (( $+functions[_setxkbmap_variant] )) || _setxkbmap_variant () { local file=$sourcedir/symbols/${1} - local -a variants lines + local -a variants lines expl if [ ! -f $file ]; then _message "no such layout: ${1}" diff --git a/Completion/X/Type/_xft_fonts b/Completion/X/Type/_xft_fonts index 535b9b5ae..991838d67 100644 --- a/Completion/X/Type/_xft_fonts +++ b/Completion/X/Type/_xft_fonts @@ -1,6 +1,6 @@ #compdef fc-list fc-match -local -a suf +local -a expl suf local font=${${PREFIX//-[0-9]##:/:}%:*}: ret=1 local attr diff --git a/Completion/Zsh/Command/_fc b/Completion/Zsh/Command/_fc index 6cc01f32d..dd014e7d7 100644 --- a/Completion/Zsh/Command/_fc +++ b/Completion/Zsh/Command/_fc @@ -1,6 +1,6 @@ #compdef fc history r -local curcontext="$curcontext" state state_descr line ret=1 +local curcontext="$curcontext" state state_descr line expl ret=1 local num cmd sep local -a events typeset -A opt_args diff --git a/Completion/Zsh/Context/_value b/Completion/Zsh/Context/_value index 47fbc1749..22372ab36 100644 --- a/Completion/Zsh/Context/_value +++ b/Completion/Zsh/Context/_value @@ -24,6 +24,7 @@ else if [[ "$compstate[parameter]" != *-* && "$compstate[context]" = *value && "${(Pt)${compstate[parameter]}}" = assoc* ]]; then + local expl if (( CURRENT & 1 )); then _wanted association-keys expl 'association key' \ compadd -k "$compstate[parameter]" diff --git a/Completion/Zsh/Function/_add-zle-hook-widget b/Completion/Zsh/Function/_add-zle-hook-widget index 93954a2bb..f108d1868 100644 --- a/Completion/Zsh/Function/_add-zle-hook-widget +++ b/Completion/Zsh/Function/_add-zle-hook-widget @@ -11,6 +11,7 @@ _add-zle-hook-widget_types() { } _add-zle-hook-widget_widgets() { + local expl if (( $+opt_args[-d] )); then local -a tmp zstyle -g tmp $line[1] widgets diff --git a/Completion/Zsh/Function/_add-zsh-hook b/Completion/Zsh/Function/_add-zsh-hook index fb5403a60..e8ae97052 100644 --- a/Completion/Zsh/Function/_add-zsh-hook +++ b/Completion/Zsh/Function/_add-zsh-hook @@ -1,6 +1,7 @@ #compdef add-zsh-hook _add-zsh-hook_hooks() { + local expl if (( $+opt_args[-d] )); then _wanted functions expl "installed hooks" compadd -a - "$line[1]_functions" && return 0 else