From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9578 invoked by alias); 19 Jun 2018 22:10:11 -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: List-Unsubscribe: X-Seq: 43073 Received: (qmail 16459 invoked by uid 1010); 19 Jun 2018 22:10:11 -0000 X-Qmail-Scanner-Diagnostics: from park01.gkg.net 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(205.235.26.22):SA:0(-1.4/5.0):. Processed in 2.795943 secs); 19 Jun 2018 22:10:11 -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=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_PASS,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: SRS0=lzrM=JF=yahoo.co.uk=okiddle@bounces.park01.gkg.net X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | X-Virus-Scanned: by amavisd-new at gkg.net Authentication-Results: amavisd4.gkg.net (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.co.uk X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1529446165; bh=3A4eZg2vcaVefQjMPtzxgFrZU9zT7i6ooAfL7AKn9h4=; h=From:To:Subject:Date:From:Subject; b=kMIuj802EJ+YWzOiahnMchKEE2Rd9WN4subd/JsmuCurRdN+fH3gPP909EJVaFjfn46qdf0lrzJQf0+oT3jHNN78Al8NhgHyOhS/rPRyIkkVLFqIHp8voxN2rwRi/qiXO9LcXZRMF6DzMf/Ja90J8hS2tRuj1LLjMah9wkeKl/E/TolpAqp1G1dr4MvW7pc+7rV/D89aycgfu2xn8k6BEW8ovbISEtsXjRZvb//dfFrBn1sgOJmJXzezROzt1aoyqzY0HcJjFYPgiPoYj28cDmyGi7dfAS02OXU49d6FNHrG1qVYBrNZcpMeU8A5cBuvkqKMIgccsX4R7gzEqBBo2w== X-YMail-OSG: pGEMgjQVM1kRVzE.xsgGOCE_auAtL2wx8QvlaeHEAQCNKpQgvwGiuYwjYgRcTUD u2qSEFJoouv7y81BRnlJgxUXcF7Is4grKysTtyHu0qFN1rwbJk7_1I4Vr_5ssQIqPDaRLTL3ppHq 9KJHyUIAlHYeJxCBEjGuIDBc330fuBeDFEA.UNarQ96mV7IMeWf0NTCAU9lUJJSA1BVSBBKSnguv wNw.hYDlpMV9goMUZVA_Vaj219mTctACmz3md_O26SPdiiAzU59jNwiwHCJ7D3s.Za3HxHGtv_pu UJekK1qNtx6sJrEzpr0MwvWknlUva.w3Zpiqmm8BWGtemg2F8.M3COa9IaaZJAOvqo3UxNNK_dTX XafsetIpgY517GrOJz5EQ6j5DUL74dVksT.tiR.D3edvpsRnJbiYpfxkn99L1vLLV38Dpzp0gUf5 BaVxnbSq0eJsZ7lJiSRZlljARize6SW9VPTmERmo7Ud9l0R3_zS0zfP8JNeC5SXKwxl5hjvtkGoT 1ZbJBCsO_7KOuR_mrUKlNRtsNeg3bolpPkDMcqhSYhFhC20oXEqnsIouMgj7gQ8fSzOXoSP25rKL oG8pRT_NtydzpzwT08UpBlxiptnFY8q43khsEYjMDSC7dM7daVXVeuahvqdEveXppnfM1YBm4HcX 3KNnCe8jD7r7YP1fVlI_aTKaKtOXa9h2THQn8Ipbb.eTzGpP7idH5XGvwdWVkpLoLpLn7gfJEgpb O6QXhASk.m3j5AvjzXXo0IeErx8j8DOMUqS3orLeuQafpNQQ0ue5gKoMOjsq37zT1g0KanEUXyKj mAuDFAi2_Z89oIRE15BDEkP6Ec7GQp7JAt.7wjHwhWTiUp07UyoeVLfziB6VCIWkHL9X_yNakpvu 3qcaDtW2SFfRnaXb60c5aSqtuj95dMbMnLbHzjjQ2G7RM3BBvix59jEUYGds- From: Oliver Kiddle To: Zsh workers Subject: PATCH: completion options update MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <17594.1529446153.1@thecus> Content-Transfer-Encoding: quoted-printable Date: Wed, 20 Jun 2018 00:09:13 +0200 Message-ID: <17595.1529446153@thecus> This is the latest installment of the usual completion options update based on -h output comparisons. Relevant versions are: ansible 2.5.2 cryptsetup 2.0.3 git 2.18rc1 kpartx 0.7.7 lynx 2.8.9dev.19 mpc 0.30 qiv 2.3.2 eu-readelf 0.172 sqlite 3.24.0 - support for sqlite archives ss 180608 subversion 1.10 - completing shelves linux mpstat 11.7.3 linux sar 11.7.3 tmux 2.7 tune2fs 1.44.2 linux usermod 4.6 wget 1.19.5 xxd 1.10 which and zed - complete the -x option For tmux, select-layout apparently now targets panes rather than windows. I'm not entirely confident in this corresponding change to _tmux. Losing the descriptions for ansible plugins makes it a lot faster to do completion for ansible-doc. This now checks the verbose style to see if descriptions are wanted. I wouldn't normally update for a release candidate as with git here but it appeared on my system with an update. Oliver diff --git a/Completion/Linux/Command/_cryptsetup b/Completion/Linux/Comma= nd/_cryptsetup index ea7152ea1..351859586 100644 --- a/Completion/Linux/Command/_cryptsetup +++ b/Completion/Linux/Command/_cryptsetup @@ -33,7 +33,7 @@ _arguments -s \ '(--use-random)--use-urandom[use /dev/urandom to generate volume key]' = \ '--shared[share device with another non-overlapping crypt segment]' \ '--uuid=3D[set device UUID]:uuid' \ - '--allow-discards[allow discards (aka TRIM) requests for device]' \ + '--allow-discards[allow discard (aka TRIM) requests for device]' \ '--header=3D[device or file with separated LUKS header]:file:_files' \ '--test-passphrase[do not activate device, just check passphrase]' \ '--tcrypt-hidden[use hidden header (hidden TCRYPT device)]' \ @@ -64,6 +64,7 @@ _arguments -s \ '--persistent[set activation flags persistent for device]' \ '--label=3D[set label for the LUKS2 device]:label' \ '--subsystem=3D[set subsystem label for the LUKS2 device]:subsystem' \ + '--unbound[create unbound (no assigned data segment) LUKS2 keyslot]' \ '(- : *)--version[show version information]' \ '(- : *)'{-\?,--help}'[display help information]' \ '(- : *)--usage[display brief usage]' \ @@ -86,6 +87,7 @@ case $state in 'luksAddKey:add a new key' 'luksRemoveKey:remove a key' 'luksChangeKey:change a key' + 'luksConvertKey:convert a key to new pbkdf parameters' 'luksKillSlot:wipe key from slot' 'luksUUID:print/change device UUID' 'isLuks:check if device is a LUKS partition' @@ -112,7 +114,7 @@ case $state in erase|convert|config|repair|(luks(AddKey|Erase|RemoveKey|DelKey|UUI= D|Dump)|isLuks)) args=3D( $device ) ;; - luks(Format|AddKey|RemoveKey|ChangeKey)) + luks(Format|AddKey|RemoveKey|ChangeKey|ConvertKey)) args=3D( $device ':key file:_files' ) ;; luksHeader*) args=3D( $device '--header-backup-file:file:_files' );= ; diff --git a/Completion/Linux/Command/_kpartx b/Completion/Linux/Command/_= kpartx index 11c614c01..8f09c416d 100644 --- a/Completion/Linux/Command/_kpartx +++ b/Completion/Linux/Command/_kpartx @@ -1,6 +1,6 @@ #compdef kpartx = -_arguments -s -w : \ +_arguments -s -S : \ '-a[add partition mappings]' \ '-r[read-only partition mappings]' \ '-d[delete partition mappings]' \ @@ -9,6 +9,6 @@ _arguments -s -w : \ '-p[set device name-partition number delimiter]' \ '-f[force creation of mappings]' \ '-g[force GUID partition table]' \ - '-v[Operate verbosely]' \ - '-s[don'\''t return until the partitions are created]' \ + '-v[operate verbosely]' \ + '-n[return before the partitions are created]' '!(-n)-s' \ '1: : _files' diff --git a/Completion/Linux/Command/_ss b/Completion/Linux/Command/_ss index dff289947..b1bfa207c 100644 --- a/Completion/Linux/Command/_ss +++ b/Completion/Linux/Command/_ss @@ -18,6 +18,7 @@ _arguments -C -s \ "($info -m --memory)"{-m,--memory}'[show socket memory usage]' \ "($info -p --processes)"{-p,--processes}'[show process using each socke= t]' \ "($info -i --info)"{-i,--info}'[show internal TCP information]' \ + "($info)--tipcinfo[show internal tipc socket information]" \ "($info -s --summary)"{-s,--summary}'[print summary statistics]' \ "($info -b --bpf)"{-b,--bpf}'[show bpf filter socket information]' \ "($info -E --events)"{-E,--events}'[continually display sockets as they= are destroyed]' \ @@ -33,13 +34,14 @@ _arguments -C -s \ "($info -d --dccp)"{-d,--dccp}'[display DCCP sockets]' \ "($info -w --raw)"{-w,--raw}'[display RAW sockets]' \ "($info -x --unix)"{-x,--unix}'[display Unix domain sockets]' \ + "($info)--tipc[display only TIPC sockets]" \ "($info)--vsock[display only vsock sockets]" \ - "($info -f --family)"{-f,--family}'[display sockets of specified type]:= family:(unix inet inet6 link netlink unix vsock)' \ + "($info -f --family)"{-f+,--family=3D}'[display sockets of specified ty= pe]:family:(unix inet inet6 link netlink unix vsock tipc)' \ "($info -K --kill)"{-K,--kill}'[forcibly close sockets, display what wa= s closed]' \ "($info -H --no-header)"{-H,--no-header}'[suppress header line]' \ - "($info -A --query --socket)"{-A,--query,--socket}'[specify socket tabl= es to show]: :_values -s , socket\ table all inet tcp udp raw unix packet = netlink unix_dgram unix_stream unix_seqpacket packet_raw packet_dgram vsoc= k_stream vsock_dgram' \ - "($info -D)"{-D,--diag=3D}'[dump raw info to file]:file:_files' \ - "($info -F)"{-F,--filter=3D}'[read filter information from a file]:file= :_files' \ + "($info -A --query --socket)"{-A+,--query=3D,--socket=3D}'[specify sock= et tables to show]: :_values -s , socket\ table all inet tcp udp raw unix = packet netlink unix_dgram unix_stream unix_seqpacket packet_raw packet_dgr= am vsock_stream vsock_dgram tipc' \ + "($info -D)"{-D+,--diag=3D}'[dump raw info to file]:file:_files' \ + "($info -F)"{-F+,--filter=3D}'[read filter information from a file]:fil= e:_files' \ "($info)*: :->filter" && ret=3D0 = if [[ -n $state ]]; then diff --git a/Completion/Linux/Command/_sysstat b/Completion/Linux/Command/= _sysstat index 855bf0a70..8b7929ddd 100644 --- a/Completion/Linux/Command/_sysstat +++ b/Completion/Linux/Command/_sysstat @@ -9,7 +9,7 @@ _mpstat() { '(-A)-N[specify NUMA nodes]:NUMA node' \ '(-A)-n[report summary CPU statistics based on NUMA node placement]' = \ '-o[display statistics in JSON]:format:(JSON)' \ - '(-A)-P[specify processor number]:processor: _values -s "," processor= ON ALL {0..$(_call_program processors getconf _NPROCESSORS_ONLN)}' \ + '(-A)-P[specify processor number]:processor: _values -s "," processor= ALL {0..$(_call_program processors getconf _NPROCESSORS_ONLN)}' \ '-u[report CPU utilization]' \ '(- 1 2)-V[display version information]' \ '1: : _guard "^-*" interval' \ @@ -85,29 +85,31 @@ _sar() { '-F[display statistics for mounted filesystems]' \ '-f[extract records from file]:record:_files' \ '-H[report hugepages utilization]' \ - '-h[display help]' \ + '(--human -p)-h[make output easier to read: implies --human and -p]' = \ + '(- 1 2)--help[display usage information]' \ '--human[print sizes in human readable format]' \ '*-I[report statistics for interrupts]:interrupts: _values -s "," int= errupts 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SUM ALL XALL' \ '-i[select records as close as possible to interval]:interval' \ '-j[display persistent device names]:type:(ID LABEL PATH UUID)' \ '-m[report power management statistics]:keywords: _values -s "," keyw= ords CPU FAN FREQ IN TEMP USB ALL' \ - '-n[report network statistics]:keywords: _values -s "," keywords DEV = EDEV NFS NFSD SOCK IP EIP ICMP EICMP TCP ETCP UDP SOCK6 IP6 EIP6 ICMP6 EIC= MP6 UDP6 ALL' \ + '-n[report network statistics]:keywords: _values -s "," keywords DEV = EDEV NFS NFSD SOCK IP EIP ICMP EICMP TCP ETCP UDP SOCK6 IP6 EIP6 ICMP6 EIC= MP6 UDP6 FC SOFT ALL' \ '-o[save readings to file in binary form]:file:_files' \ '-P[report per-processor statistics]:processor: _values -s "," proces= sors ALL' \ '-p[pretty-print device names]' \ '-q[report queue length and load averages]' \ '-R[report memory statistics]' \ - '-r[report memory utilization statistics]' \ + '-r[report memory utilization statistics]:: :(ALL)' \ '-S[report swap space utilization]' \ '-s[set starting time of report]:start time (HH\:MM\:SS)' \ '--sadc[print name of data collector]' \ '-t[display timestamps in original local time of file creator]' \ - '-u[report CPU utilization]: :(ALL)' \ + '-u[report CPU utilization]:: :(ALL)' \ '(- 1 2)-V[display version information]' \ '-v[report status of kernel tables]' \ '-W[report swapping statistics]' \ '-w[report task creation and system switching activity]' \ '-y[report TTY device activity]' \ + '-z[omit output for any devices lacking activity during sample period= ]' \ '1: : _guard "^-*" interval' \ '2: : _guard "^-*" count' } diff --git a/Completion/Linux/Command/_tune2fs b/Completion/Linux/Command/= _tune2fs index af120e279..3d64f266c 100644 --- a/Completion/Linux/Command/_tune2fs +++ b/Completion/Linux/Command/_tune2fs @@ -24,7 +24,7 @@ _arguments -s -S \ '-m+[set the percentage of reserved filesystem blocks]:percentage' \ '-M+[set the last-mounted directory for the filesystem]:directory:_file= s -/' \ '-o+[mount options]:options:_values -s , debug bsdgroups user_xattr acl= uid16 journal_data journal_data_ordered journal_data_writeback nobarrier = block_validity discard nodelalloc' \ - '-O+[set or clear filesystem features]: :_values -s , feature dir_index= dir_nlink encrypt extentextent extra_isize filetype flex_bg has_journalhu= ge_file large_file metadata_csum mmp project quota read-only resize_inode = sparse_super uninit_bg' \ + '-O+[set or clear filesystem features]: :_values -s , feature 64bit dir= _index dir_nlink ea_inode encrypt extent extra_isize filetype flex_bg has_= journal large_dir huge_file large_file metadata_csum metadata_csum_seed mm= p project quota read-only resize_inode sparse_super uninit_bg' \ '-r+[set the number of reserved filesystem blocks]:number' \ '-Q+[set quota feature on the superblock]: :_values -s , "quota option"= usrquota grpquota prjquota' \ '-s+[set sparse super feature]:state:((0\:off 1\:on))' \ diff --git a/Completion/Unix/Command/_ansible b/Completion/Unix/Command/_a= nsible index f05dac8a6..330ef66b7 100644 --- a/Completion/Unix/Command/_ansible +++ b/Completion/Unix/Command/_ansible @@ -30,7 +30,7 @@ case $service in '(-D --diff)'{-D,--diff}'[show differences when changing small file= s and templates]' '(-b --become)'{-b,--become}'[escalate privileges on remote system]= ' '(-f --forks)'{-f+,--forks=3D}'[specify number of parallel processe= s to use]:processes [5]' - '--become-method=3D[specify privilege escalation method to use]:met= hod [sudo]:(sudo su pbrun pfexec doas dzdo ksu runas pmrun)' + '--become-method=3D[specify privilege escalation method to use]:met= hod [sudo]:(sesu sudo su pbrun pfexec doas dzdo ksu runas pmrun enable)' '--become-user=3D[specify remote user for running operations]:user:= _users' "--syntax-check[perform a syntax check on the playbook, but don't e= xecute it]" '!(-R --su-user -U --sudo-user)'{-R,-U,--su-user,--sudo-user}':user= [root]:_users' @@ -39,17 +39,20 @@ case $service in ansible|ansible-console|ansible-inventory|ansible-playbook|ansible-pull= |ansible-vault) args+=3D( '--ask-vault-pass[ask for vault password]' - '--new-vault-id=3D[specify new vault identity to use for rekey]:vau= lt id' - '--new-vault-password-file=3D[specify new vault password file to us= e for rekey]:file:_files' '--vault-id=3D[specify vault identity to use]:vault identity' '--vault-password-file=3D[specify vault password file]:vault passwo= rd file:_files' ) ;| ansible|ansible-console|ansible-inventory|ansible-playbook|ansible-pull= ) args+=3D( - '--list-hosts[output list of matching hosts]' - '(-i --inventory)'{-i+,--inventory=3D}'[specify inventory host file= ]:inventory file:_files' + '(-i --inventory)'{-i+,--inventory=3D}'[specify inventory host file= or host list]: : _alternative "files\:inventory file\:_files" + "hosts\:host\: _sequence _hosts"' '!(-i --inventory)--inventory-file=3D:inventory file:_files' + ) + ;| + ansible|ansible-console|ansible-playbook|ansible-pull) + args+=3D( + '--list-hosts[output list of matching hosts]' '(-l --limit)'{-l+,--limit=3D}'[further limit hosts to an additiona= l pattern]:host subset:->hosts' ) ;| @@ -58,21 +61,22 @@ case $service in '(-e --extra-vars)'{-e+,--extra-vars=3D}'[set additional variables]= :key=3Dvalue or YAML/JSON' ) ;| + ansible|ansible-console|ansible-inventory) + args+=3D( + '--playbook-dir=3D[specify substitute playbook directory]:directory= :_directories' + ) + ;| ansible-playbook|ansible-pull) args+=3D( '(-t --tags)'{-t,--tags}'[only run plays and tasks tagged with thes= e values]' "--skip-tags[only run plays and tasks whose tags don't match]" ) ;| - ansible|ansible-pull) - args+=3D( - '(-m --module-name)'{-m+,--module-name=3D}'[specify module]:module:= ->plugins' - ) - ;| ansible) args+=3D( '(-a --args)'{-a+,--args=3D}'[specify command or module arguments]:= arguments:->args' '(-B --background)'{-B+,--background=3D}'[run asynchronously, faili= ng after specified time]:fail timeout (seconds)' + '(-m --module-name)'{-m+,--module-name=3D}'[specify module]:module:= ->plugins' '(-o --one-line)'{-o,--one-line}'[condense output]' '(-P --poll)'{-P+,--poll=3D}'[specify the poll interval if using -B= ]:interval (seconds) [15]' '(-t --tree)'{-t+,--tree=3D}'[specify directory for log output]:dir= ectory:_directories' @@ -98,14 +102,16 @@ case $service in ;; ansible-doc) args+=3D( - '(-l --list)'{-l,--list}'[list available plugins]' - '(-s --snippet)'{-s,--snippet}'[show playbook snippet for specified= plugins]' + '(-l --list -F --list_files -s --snippet)'{-l,--list}'[list availab= le plugins]' + '(-l --list -F --list_files -s --snippet)'{-F,--list_files}'[show p= lugin names and their source files without summaries]' + '(-l --list -F --list_files -s --snippet)'{-s,--snippet}'[show play= book snippet for specified plugins]' '(-t --type)'{-t+,--type=3D}'[choose plugin type]:plugin type [modu= le]:(cache callback connection inventory lookup module strategy vars)' '*:plugin:->plugins' ) ;; ansible-inventory) args+=3D( + '--export[when doing an --list, represent in a way that is optimize= d for export]' '(-y --yaml)--graph[output inventory graph]' '--host[output specific host information]' '--list[output all hosts information]' @@ -125,7 +131,7 @@ case $service in ;; ansible-playbook) args+=3D( - '--flush-cache[clear the fact cache]' + '--flush-cache[clear the fact cache for every host in inventory]' '--force-handlers[run handlers even if a task fails]' '--list-tags[list all available tags]' '--list-tasks[list all tasks that would be executed]' @@ -139,6 +145,7 @@ case $service in "--check[don't make any changes]" '(-d --directory)'{-d+,--directory=3D}'[specify directory to checko= ut repository to]:directory:_directories' '--full[do a full instead of a shallow clone]' + '(-m --module-name)'{-m+,--module-name=3D}'[specify repository modu= le used for checking out repository]:module:(git subversion hg bzr)' '--accept-host-key[adds the hostkey for the repo url if not already= added]' '--purge[purge checkout after playbook run]' '(-f --force)'{-f,--force}'[run the playbook even if the repository= could not be updated]' @@ -153,6 +160,8 @@ case $service in ;; ansible-vault) args=3D( -A "-*" $args + '--new-vault-id=3D[specify new vault identity to use for rekey]:vau= lt id' + '--new-vault-password-file=3D[specify new vault password file to us= e for rekey]:file:_files' '*::args:->vault' ) ;; @@ -200,9 +209,15 @@ case $state in plugins) plugvar=3D_ansible_${plug}_plugins typeset -ga ${plug} - (( ${(P)#plugvar} )) || set -A ${plugvar} \ - ${${(f)"$(_call_program plugins ansible-doc -t $plug -l)"}/ ##/:} - _describe -t plugins "${plug} plugin" $plugvar && ret=3D0 + if zstyle -T ":completion:${curcontext}:plugins" verbose; then + (( ${(P)#plugvar} )) || set -A ${plugvar} \ + ${${(f)"$(_call_program plugins ansible-doc -t $plug -l)"}/ ##/:} + _describe -t plugins "${plug} plugin" $plugvar && ret=3D0 + else + (( ${(P)#plugvar} )) || set -A ${plugvar} \ + ${${(f)"$(_call_program plugins ansible-doc -t $plug -F)"}%% *} + _wanted plugins expl "${plug} plugin" compadd -a $plugvar && ret=3D= 0 + fi ;; galaxy) curcontext=3D"${curcontext%:*}-${line[1]}:" @@ -265,6 +280,11 @@ case $state in curcontext=3D"${curcontext%:*}-${line[1]}:" args=3D() case $line[1] in + encrypt*|edit|rekey) + args+=3D( + '--encrypt-vault-id=3D[specify vault id to use to encrypt (required if= more than one vault-id is provided)]:vault id' + ) + ;| (de|en)crypt*) args=3D( '--output=3D[specify output file name]:file= :_files' ) ;| encrypt_string) args+=3D( diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index b92a320df..38b872ea0 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -871,6 +871,7 @@ _git-fetch () { '(-n --no-tags -t --tags)'{-n,--no-tags}'[disable automatic tag follo= wing]' \ '(--all -m --multiple)'{-m,--multiple}'[fetch from multiple remotes]'= \ '(-P --prune-tags)'{-P,--prune-tags}'[prune local tags no longer on r= emote and clobber changed tags]' \ + \*{-o+,--server-option=3D}'[send specified string to the server when = using protocol version 2]:option' \ '--filter=3D[object filtering]:filter:_git_rev-list_filters' \ '*:: :->repository-or-group-or-refspec' && ret=3D0 = @@ -959,9 +960,10 @@ _git-gc () { _arguments -S -s \ '--aggressive[more aggressively optimize]' \ '--auto[check whether housekeeping is required]' \ - '( --no-prune)--prune=3D[prune loose objects older than given = date]: :__git_datetimes' \ + '( --no-prune)--prune=3D-[prune loose objects older than given= date]::date [2 weeks ago]:__git_datetimes' \ '(--prune )--no-prune[do not prune any loose objects]' \ - '(-q --quiet)'{-q,--quiet}'[suppress progress reporting]' + '(-q --quiet)'{-q,--quiet}'[suppress progress reporting]' \ + '--keep-largest-pack[repack all other packs except the largest pack]'= \ } = (( $+functions[_git-grep] )) || @@ -1768,7 +1770,10 @@ _git-status () { '--ignored=3D-[show ignored files as well]:mode [traditional]:(tradit= ional matching no)' \ '(-z --null --column --no-column)'{-z,--null}'[use NUL termination on= output]' \ '(--no-column -z --null)--column=3D-[display in columns]::column.stat= us option:((always\:"always show in columns" never\:"never show in columns= " auto\:"show in columns if the output is to the terminal" column\:"fill c= olumns before rows (default)" row\:"fill rows before columns" plain\:"show= in one column" dense\:"make unequal size columns to utilize more space" n= odense\:"make equal size columns"))' \ - '(--column)--no-column[do not display in columns]' \ + "(--column)--no-column[don't display in columns]" \ + "(--no-renames -M --find-renames)--no-renames[don't detect renames]" = \ + '(--no-renames -M --find-renames)-M[detect renames]' \ + '(--no-renames -M --find-renames)--find-renames=3D-[detect renames, o= ptionally set similarity index]::similarity' \ '*: :__git_ignore_line_inside_arguments _files' } = @@ -2155,16 +2160,18 @@ _git-config () { '(--global --system -f --file --blob)--local[use local config= file]' \ '(--global --system --local --blob)'{-f+,--file=3D}'[use gi= ven config file]:config file:_files' \ '(--global --system --local -f --file)--blob=3D[read config from give= n blob object]:blob:__git_blobs' \ - '( --int --bool-or-int --path --expiry-date)--bool[setting is a= boolean]' \ - '(--bool --bool-or-int --path --expiry-date)--int[setting is an= integer]' \ - '(--bool --int --path --expiry-date)--bool-or-int[setti= ng is an integer]' \ - '(--bool --int --bool-or-int --expiry-date)--path[setting is a= path]' \ - '(--bool --int --bool-or-int --path )--expiry-date[setti= ng is an expiry date]' \ + '(-t --type --bool --int --bool-or-int --path --expiry-date)'{-t+,--t= ype=3D}'[ensure that incoming and outgoing values are canonicalize-able as= the given type]:type:(bool int bool-or-int path expiry-date color)' \ + '(-t --type --int --bool-or-int --path --expiry-date)--bool[setting i= s a boolean]' \ + '(-t --type --bool --bool-or-int --path --expiry-date)--int[setting i= s an integer]' \ + '(-t --type --bool --int --path --expiry-date)--bool-or-int[setting i= s an integer]' \ + '(-t --type --bool --int --bool-or-int --expiry-date)--path[setting i= s a path]' \ + '(-t --type --bool --int --bool-or-int --path)--expiry-date[setting i= s an expiry date]' \ '(-z --null)'{-z,--null}'[end values with NUL and newline between key= and value]' \ '(--get --get-all --get-urlmatch --replace-all --add --unset --unset-= all --rename-section --remove-section -e --edit --get-color --get-colorboo= l)--name-only[show variable names only]' \ '(--includes)'--no-includes"[don't respect \"include.*\" directives]"= \ '(--no-includes)'--includes'[respect "include.*" directives in config= files when looking up values]' \ '(--global --system --local -f --file --blob --get-urlmatch --replace= -all --add --unset --unset-all --rename-section --remove-section -e --edit= --get-color --get-colorbool)--show-origin[show origin of config]' \ + '(2 --add -e --edit -l --list --name-only --rename-section --remove-s= ection --replace-all --unset --unset-all)--default=3D[with --get, use spec= ified default value when entry is missing]:default' \ $name_arg \ $value_arg \ '::value regex' \ @@ -3708,11 +3715,17 @@ _git-replace () { '(: * --raw -f --force)'{-l,--list}'[list replace refs]:pattern' \ {-d,--delete}'[delete existing replace refs]:*:replacement:__git_obje= cts' \ '(* 2 --format)'{-e,--edit}'[edit existing object and replace it with= the new one]' \ - '(--raw --format)'{-g,--graft}'[rewrite the parents of a commit]' + '(--raw --format)'{-g,--graft}'[rewrite the parents of a commit]' \ + '--convert-graft-file[convert existing graft file]' } = # Ancillary Commands (Interrogators) = +(( $+functions[_git-annotate] )) || +_git-annotate() { + _git-blame "$@" +} + (( $+functions[_git-blame] )) || _git-blame () { local curcontext=3D$curcontext state line ret=3D1 @@ -3744,6 +3757,8 @@ _git-blame () { '(-n --show-number)'{-n,--show-number}'[show the line number in the o= riginal commit]' \ '-s[suppress author name and timestamp]' \ '-w[ignore whitespace when finding lines]' \ + '(--color-by-age)--color-lines[color redundant metadata from previous= line differently]' \ + '(--color-lines)--color-by-age[color lines by age]' \ '--indent-heuristic[use indent-based heuristic to improve diffs]' \ $revision_options \ ':: :__git_revisions' \ @@ -3831,10 +3846,11 @@ _git-get-tar-commit-id () { _git-help () { _arguments -S -s \ '( -g --guides -i --info -m --man -w --web)'{-a,--all}'[show = all available commands]' \ - '(-a --all -g --guides -m --man -w --web)'{-i,--info}'[show= all available commands]' \ - '(-a --all -g --guides -i --info -w --web)'{-m,--man}'[show = all available commands]' \ - '(-a --all -g --guides -i --info -m --man )'{-w,--web}'[show = all available commands]' \ + '(-a --all -g --guides -m --man -w --web)'{-i,--info}'[disp= lay manual for the command in info format]' \ + '(-a --all -g --guides -i --info -w --web)'{-m,--man}'[displ= ay manual for the command in man format]' \ + '(-a --all -g --guides -i --info -m --man )'{-w,--web}'[displ= ay manual for the command in HTML format]' \ '(-g --guides)'{-g,--guides}'[prints a list of useful guides on the s= tandard output]' \ + '(-v --verbose)'{-v,--verbose}'[print command descriptions]' \ ': : _alternative commands:command:_git_commands "guides:git guides:(= attributes glossary ignore modules revisions tutorial workflows)"' } = @@ -4703,6 +4719,7 @@ _git-pack-objects () { $thin_opt \ '--shallow[create packs suitable for shallow fetches]' \ '--honor-pack-keep[ignore objects in local pack with .keep file]' \ + '--keep-pack=3D[ignore named pack]:pack' \ '--compression=3D-[specify compression level]: :__git_compression_lev= els' \ '--keep-true-parents[pack parents hidden by grafts]' \ '--use-bitmap-index[use a bitmap index if available to speed up count= ing objects]' \ @@ -5037,7 +5054,9 @@ _git-ls-remote () { "--refs[don't show peeled tags]" \ '--exit-code[exit with status 2 when no matching refs are found in th= e remote repository]' \ '--get-url[expand the URL of the given repository taking into account= any "url..insteadOf" config setting]' \ + '*--sort=3D[specify field name to sort on]:field:__git_ref_sort_keys'= \ '--symref[show underlying ref in addition to the object pointed by it= ]' \ + \*{-o+,--server-option=3D}'[send specified string to the server when = using protocol version 2]:option' \ ': :__git_any_repositories' \ '*: :__git_references' } @@ -6407,7 +6426,7 @@ __git_heads () { = (( $+functions[__git_heads_local] )) || __git_heads_local () { - local gitdir + local f gitdir declare -a heads = heads=3D(${(f)"$(_call_program headrefs git for-each-ref --format=3D'"%= (refname:short)"' refs/heads 2>/dev/null)"}) @@ -7742,8 +7761,8 @@ _git() { '(: -)--man-path[print the manpath for the man pages for this versi= on of Git and exit]' \ '(: -)--info-path[print the path where the info files are installed= and exit]' \ '(: -)--html-path[display path to HTML documentation and exit]' \ - '(-p --paginate)'{-p,--paginate}'[pipe output into $PAGER]' \ - '--no-pager[do not pipe git output into a pager]' \ + '(-p --paginate -P --no-pager)'{-p,--paginate}'[pipe output into a = pager]' \ + '(-p --paginate -P --no-pager)'{-P,--no-pager}"[don't pipe git outp= ut into a pager]" \ '--git-dir=3D-[path to repository]: :_directories' \ '--work-tree=3D-[path to working tree]: :_directories' \ '--namespace=3D-[set the Git namespace]: :_directories' \ diff --git a/Completion/Unix/Command/_lynx b/Completion/Unix/Command/_lynx index 6c4d57f6f..d25b03975 100644 --- a/Completion/Unix/Command/_lynx +++ b/Completion/Unix/Command/_lynx @@ -1,7 +1,5 @@ #compdef lynx = -# Lynx Version 2.8.7rel.1 (05 Jul 2009) - local curcontext=3D"$curcontext" state line ret=3D1 typeset -A opt_args = @@ -26,7 +24,9 @@ _arguments -C \ '-cmd_log=3D[log keystroke commands to the given file]:keystroke log:_f= iles' \ '-cmd_script=3D[read keystroke commands from the given file (see -cmd_l= og)]:keystroke log:_files' \ '-color[forces color mode on, if available]' \ - '-connect_timeout=3D[set the N-second connection timeout (18000)]:conne= ction timeout (seconds):' \ + '-collapse_br_tags[toggle collapsing of BR tags (on)]' \ + '-connect_timeout=3D[set the N-second connection timeout]:connection ti= meout (seconds) [18000]' \ + '-convert_to=3D[convert input]:format:_mime_types' \ '-cookie_file=3D[specifies a file to use to read cookies]:cookie file:_= files' \ '-cookie_save_file=3D[specifies a file to use to store cookies]:cookie = file:_files' \ '-cookies[toggles handling of Set-Cookie headers (on)]' \ @@ -34,7 +34,8 @@ _arguments -C \ '-crawl[with -traversal, output each page to a file with -dump, format = output as with -traversal, but to stdout]' \ '-curses_pads[uses curses pad feature to support left/right shifting (o= n)]' \ '-debug_partial[incremental display stages with MessageSecs delay (off)= ]' \ - '-delay=3D[set NNN-second delay at statusline message (0.000)]:delay (s= econds):' \ + '-default_colors[use terminal default foreground/background colors (on)= ]' \ + '-delay=3D[set NNN-second delay at statusline message]:delay (seconds) = [0.000]' \ "-display=3D[set the display variable for X exec'ed programs]:display:_= x_display" \ '-display_charset=3D[charset for the terminal output]:character set:' \ "-dont_wrap_pre[inhibit wrapping of text in
 when -dump'ing and -c=
rawl'ing, mark wrapped lines in interactive session (off)]" \
@@ -47,7 +48,7 @@ _arguments -C \
   '-fileversions[include all versions of files in local VMS directory lis=
tings]' \
   '-force_empty_hrefless_a[force HREF-less 'A' elements to be empty (clos=
e them as soon as they are seen) (off)]' \
   '-force_html[forces the first document to be interpreted as HTML (off)]=
' \
-  '-force_secure[toggles forms-based vs old-style options menu (on)]' \
+  '-force_secure[toggle forcing of the secure flag for SSL cookies (off)]=
' \
   '-forms_options[toggles forms-based vs old-style options menu (on)]' \
   '-from[toggle transmission of From headers (on)]' \
   '-ftp[disable ftp access (off)]' \
@@ -57,11 +58,13 @@ _arguments -C \
   '-hiddenlinks=3D[hidden links: options are merge, listonly, or ignore]:=
option:(merge listonly ignore)' \
   "-historical[toggles use of '>' or '-->' as terminator for comments (of=
f)]" \
   '-homepage=3D[set homepage separate from start page]:URL:->html' \
+  '-html5_charsets[toggle use of HTML5 charset replacements]' \
   '-image_links[toggles inclusion of links for all images (off)]' \
   '-index=3D[set the default index file to URL]:URL:->html' \
   '-ismap[toggles inclusion of ISMAP links when client-side MAPs are pres=
ent (off)]' \
   '-justify[do justification of text (off)]' \
   '-link=3D[starting count for lnk#.dat files produced by -crawl (0)]:sta=
rting count:' \
+  '-list_inline[with -dump, show links inline with text]' \
   '-listonly[with -dump, forces it to show only the list of links (off)]'=
 \
   '-localhost[disable URLs that point to remote hosts (off)]' \
   '-locexec[enable local program execution from local files only (if lynx=
 was compiled with local execution enabled)]' \
@@ -91,6 +94,7 @@ _arguments -C \
   '-nostatus[disable the miscellaneous information messages (off)]' \
   '-notitle[disable the title at the top of each page (off)]' \
   '-nounderline[disable underline video-attribute]' \
+  "-nozap=3D[disable checks for the 'z' key]:duration:(all initially full=
)" \
   '-number_fields[force numbering of links as well as form input fields (=
off)]' \
   '-number_links[force numbering of links (off)]' \
   '-partial[toggles display partial pages while downloading (on)]' \
@@ -105,7 +109,7 @@ _arguments -C \
   '-pseudo_inlines[toggles pseudo-ALTs for inlines with no ALT string (on=
)]' \
   '-raw[toggles default setting of 8-bit character translations or CJK mo=
de for the startup character set (off)]' \
   '-realm[restricts access to URLs in the starting realm (off)]' \
-  '-read_timeout=3D[set the N-second read-timeout (18000)]:timeout (secon=
ds):' \
+  '-read_timeout=3D[set the N-second read-timeout]:timeout (seconds) [180=
00]' \
   '-reload[flushes the cache on a proxy server (only the first document a=
ffected) (off)]' \
   '-restrictions=3D[use -restrictions to see list]:options:->restrictions=
' \
   '-resubmit_posts[toggles forced resubmissions (no-cache) of forms with =
method POST when the documents they returned are sought with the PREV_DOC =
command or from the History List (off)]' \
@@ -113,6 +117,9 @@ _arguments -C \
   '-scrollbar[toggles showing scrollbar (off)]' \
   '-scrollbar_arrow[toggles showing arrows at ends of the scrollbar (on)]=
' \
   '-selective[require .www_browsable files to browse directories]' \
+  '-session=3D[resume from specified file on startup and save session to =
it on exit]:session file:_files' \
+  '-sessionin=3D[resume session from specified file on startup]:session f=
ile:_files' \
+  '-sessionout=3D[save session to specified file on exit]:session file:_f=
iles' \
   '-short_url[enables examination of beginning and end of long URL in sta=
tus line (off)]' \
   "-show_cfg[show 'LYNX.CFG' setting (off)]" \
   '-show_cursor[toggles hiding of the cursor in the lower right corner (o=
n)]' \
@@ -131,16 +138,18 @@ _arguments -C \
   '-trace[turns on Lynx trace mode (off)]' \
   '-trace_mask=3D[customize Lynx trace mode]:trace mask:(0 1 2 3 4 5 6 7)=
' \
   '-traversal[traverse all http links derived from startfile]' \
+  '-trim_blank_lines[toggle trimming of leading/trailing/collapsed-br bla=
nk lines (on)]' \
   '-trim_input_fields[trim input text/textarea fields in forms (off)]' \
   '-underline_links[toggles use of underline/bold attribute for links (of=
f)]' \
   '-underscore[toggles use of _underline_ format in dumps (off)]' \
+  '-unique_urls[toggle use of unique-urls setting for -dump and -listonly=
 options (off)]' \
   '-use_mouse[turn on mouse support (off)]' \
   '-useragent=3D[set alternate Lynx User-Agent header]:user-agent header:=
' \
   '-validate[accept only http URLs (meant for validation) implies more re=
strictions than -anonymous, but goto is allowed for http and https (off)]'=
 \
   '-verbose[toggles [LINK\], [IMAGE\] and [INLINE\] comments with filenam=
es of these images (on)]' \
   '(- *)-version[print Lynx version information]' \
   '-vikeys[enable vi-like key movement (off)]' \
-  '-width=3D[screen width for formatting of dumps (default is 80)]:number=
 of columns:' \
+  '-width=3D[specify screen width for formatting of dumps]:number of colu=
mns [80]' \
   '-with_backspaces[emit backspaces in output if -dumping or -crawling]' =
\
   '-xhtml-parsing[enable XHTML 1.0 parsing (off)]' \
   ':URL:->html' && ret=3D0
@@ -148,12 +157,12 @@ _arguments -C \
 case "$state" in
 restrictions)
   _values -s ',' 'restriction' \
-    \? all bookmark bookmark_exec change_exec_perms chdir default \
-    dired_support disk_save dotfiles download editor exec exec_frozen \
+    \? all bookmark bookmark_exec change_exec_perms chdir compileopts_inf=
o \
+    default dired_support disk_save dotfiles download editor exec exec_fr=
ozen \
     externals file_url goto inside_ftp inside_news inside_rlogin \
-    inside_telnet jump lynx_cgi mail multibook news_post options_save \
-    outside_ftp outside_news outside_rlogin outside_telnet print shell \
-    suspend telnet_port useragent && return
+    inside_telnet jump lynxcfg_info lynxcfg_xinfo lynxcgi mail multibook =
\
+    news_post options_save outside_ftp outside_news outside_rlogin \
+    outside_telnet print shell suspend telnet_port useragent && return
   ;;
 html)
   _alternative 'files:file:_files -g "*.x#html#(-.)"' 'urls:URL:_urls' &&=
 return
diff --git a/Completion/Unix/Command/_mpc b/Completion/Unix/Command/_mpc
index 45d93550d..4f200c69e 100644
--- a/Completion/Unix/Command/_mpc
+++ b/Completion/Unix/Command/_mpc
@@ -37,6 +37,7 @@ _mpc_command() {
     disable:"disable an output"
     enable:"enable an output"
     toggleoutput:"toggle an output"
+    outputset:"set output attributes"
     idle:"wait until an event occurs"
     idleloop:"loop waiting for events"
     insert:"insert a song after the currently playing song in the playlis=
t"
@@ -73,6 +74,7 @@ _mpc_command() {
     stop:"stop the currently playing playlists"
     toggle:"toggles Play/Pause, plays if stopped"
     update:"scan music directory for updates"
+    rescan:"rescan music directory (including unchanged files)"
     version:"report version of MPD"
     volume:"set volume"
     status:"display MPD status"
@@ -222,6 +224,16 @@ _mpc_toggleoutput() {
   _mpc_helper_outputs
 }
 =

+_mpc_outputset() {
+  if (( CURRENT =3D=3D 2 )); then
+    _mpc_helper_outputs
+  else
+    _values -w -S =3D attribute \
+      'dop:setting:(1 0)' \
+      'allowed_formats:formats'
+  fi
+}
+
 _mpc_move() {
   if (( $#words <=3D 3 )); then
     _mpc_helper_songnumbers
@@ -318,6 +330,10 @@ _mpc_update() {
   _mpc_helper_files
 }
 =

+_mpc_rescan() {
+  _mpc_helper_files
+}
+
 if [[ $service =3D *MPD_HOST* ]]; then
   _hosts
   return
@@ -339,7 +355,7 @@ if [[ $state =3D formats ]]; then
   compset -P '([^%]|%[^%]#%)#'
   _wanted metadata expl 'metadata delimiter' compadd -p % -S % \
     artist album albumartist comment composer date disc genre performer t=
itle \
-    track time file position mtime mdate && ret=3D0
+    track time file position id prio mtime mdate && ret=3D0
 fi
 =

 return ret
diff --git a/Completion/Unix/Command/_readelf b/Completion/Unix/Command/_r=
eadelf
index 282431462..ce78baf27 100644
--- a/Completion/Unix/Command/_readelf
+++ b/Completion/Unix/Command/_readelf
@@ -7,6 +7,7 @@ _pick_variant -r variant elftoolchain=3Delftoolchain elfut=
ils=3Delfutils binutils --
 =

 args=3D(
   '(-a --all)'{-a,--all}'[show all tables]'
+  '(-g --section-groups)'{-g,--section-groups}'[show section groups]'
   '(-h --file-header)'{-h,--file-header}'[show file header]'
   '(-l --program-headers --segments)'{-l,--program-headers,--segments}'[s=
how program headers]'
   '(-S --section-headers --sections)'{-S,--section-headers,--sections}'[s=
how sections header]'
@@ -31,7 +32,6 @@ args=3D(
 case $variant in
   elftoolchain|binutils)
     args+=3D(
-      '(-g --section-groups)'{-g,--section-groups}'[show section groups]'
       '(-t --section-details)'{-t,--section-details}'[show section detail=
s]'
       '(-e --headers)'{-e,--headers}'[show file, program and sections hea=
ders]'
       '(-s --syms --symbols)'{-s,--syms,--symbols}'[show symbol table]'
@@ -49,6 +49,7 @@ case $variant in
   ;;
   elfutils)
     args+=3D(
+      '--dwarf-skeleton=3D[find skeleton compile units (with -w)]:file:_f=
iles'
       '--elf-section[used specified section as ELF input data]::section'
       '(-e --exception)'{-e,--exception}'[show sections for exception han=
dling]'
       '(-N --numeric-addresses)'{-N,--numeric-addresses}"[don't find symb=
ol names for addresses in DWARF data]"
diff --git a/Completion/Unix/Command/_sqlite b/Completion/Unix/Command/_sq=
lite
index 58f7a9116..4604fb40c 100644
--- a/Completion/Unix/Command/_sqlite
+++ b/Completion/Unix/Command/_sqlite
@@ -1,6 +1,6 @@
 #compdef sqlite sqlite3
 =

-local ret opt display_opt sqlite3
+local opt display_opt sqlite3 ign
 local -a options output_modes exclusive dashes
 =

 [[ $service =3D sqlite3 ]] && sqlite3=3Dtrue || unset sqlite3
@@ -31,16 +31,18 @@ for display_opt in $output_modes ; do
   options+=3D( "($exclusive)"$^dashes"-${opt}[set output mode to $display=
_opt]" )
 done
 =

+(( $#words =3D=3D 2 )) || ign=3D'!'
 options+=3D(
   $^dashes'-separator[set output field separator]:output field separator =
[|]'
   $^dashes'-nullvalue[set text string for null values]:string'
-  '(- :)'$^dashes'-version[show SQLite version]'
-  '(- :)'$^dashes'-help[show help]'
+  "$ign(- :)"$^dashes'-version[show SQLite version]'
+  "$ign(- :)"$^dashes'-help[show help]'
   '1:SQLite database file:_files'
-  '(- :)2:SQL to run'
+  '(- :)2: :_guard "^-*" "SQL to run"'
 )
 =

 (( $+sqlite3 )) && options+=3D(
+  $^dashes'-A+[run .archive with arguments and exit]'
   $^dashes'-append[append the database to the end of the file]'
   $^dashes'-bail[stop after hitting an error]'
   $^dashes'-cmd[run specified command before reading stdin]:sqlite meta-c=
ommand'
@@ -53,6 +55,23 @@ options+=3D(
   $^dashes'-readonly[open the database read-only]'
   $^dashes'-stats[print memory stats before each finalize]'
   $^dashes'-vfs[use specified default VFS]:vfs:(unix-dotfile unix-excl un=
ix-none unix-namedsem)'
+  $^dashes'-zip[open the file as a ZIP Archive]'
 )
 =

+if [[ -n $words[(r)-A*] ]]; then
+  options=3D( -s -w : '(-A --A)'${^dashes}-A "(-f --file -a --append)"${(=
M)options:#1:*}
+    '(-v --verbose)'{-v,--verbose}'[print each filename as it is processe=
d]'
+    '(1 -a --append -f --file)'{-f+,--file=3D}'[specify archive file]:arc=
hive file:_files'
+    '(1 -a --append -f --file)'{-a,--append=3D}'[operate on specified fil=
e opened using the apndvfs VFS]:archive file:_files'
+    '(-C --directory)'{-C+,--directory=3D}'[change to specified directory=
 to read/extract files]:directory:_directories'
+    '(-n --dryrun)'{-n,--dryrun}'[show the SQL that would have occurred]'
+    '*:file:_files'
+    + '(commands)' \
+    '(-c --create)'{-c,--create}'[create a new archive]'
+    '(-u --update)'{-u,--update}'[update or add files to an existing arch=
ive]'
+    '(-t --list)'{-t,--list}'[list contents of archive]'
+    '(-x --extract)'{-x,--extract}'[extract files from archive]'
+  )
+fi
+
 _arguments $options
diff --git a/Completion/Unix/Command/_subversion b/Completion/Unix/Command=
/_subversion
index b7e10c06b..e16be7e59 100644
--- a/Completion/Unix/Command/_subversion
+++ b/Completion/Unix/Command/_subversion
@@ -26,7 +26,7 @@ _svn () {
 =

   _arguments -C -A "-*" \
     '(-)--help[print help information]' \
-    '(- *)--version[print client version information]' \
+    '(*)--version[print client version information]' \
     '1: :->cmds' \
     '*:: :->args' && ret=3D0
 =

@@ -169,6 +169,9 @@ _svn () {
               '*:file:_files -g "(.svn|*)(/e:_svn_deletedfiles:,e:_svn_st=
atus:)"'
             )
           ;;
+	  (unshelve)
+	    args+=3D( '1:shelf name:compadd - ${${(f)"$(_call_program shelves sv=
n unshelve -q --list)"}%%      *}' )
+	  ;;
           (*)
             case $usage in
               *(SRC|DST|TARGET|URL*PATH)*)
diff --git a/Completion/Unix/Command/_tmux b/Completion/Unix/Command/_tmux
index f7b1bbb20..ac459f8ab 100644
--- a/Completion/Unix/Command/_tmux
+++ b/Completion/Unix/Command/_tmux
@@ -234,6 +234,7 @@ _tmux-choose-client() {
 _tmux-choose-tree() {
   [[ -n ${tmux_describe} ]] && print "put a window into tree choice mode"=
 && return
   _arguments -s \
+    '-G[include all sessions in any session groups in the tree rather tha=
n only the first]' \
     '-N[start without the preview]' \
     '-F+[specify format for each list item]:format:__tmux-formats' \
     '-f+[filter items]:filter format:__tmux-formats' \
@@ -561,6 +562,8 @@ _tmux-paste-buffer() {
 _tmux-pipe-pane() {
   [[ -n ${tmux_describe} ]] && print "pipe output from a pane to a shell =
command" && return
   _arguments -s -A "-*" -S \
+    '-I[write stdout from command to the pane as if it were typed]' \
+    '-O[pipe output from the pane to the command (default unless -I used)=
]' \
     '-o[only open a pipe if none is currently opened]' \
     '-t+[specify target pane]:pane:__tmux-panes' \
     ':shell command:_cmdstring'
@@ -657,12 +660,13 @@ _tmux-save-buffer() {
 }
 =

 _tmux-select-layout() {
-  [[ -n ${tmux_describe} ]] && print "choose a layout for a window" && re=
turn
+  [[ -n ${tmux_describe} ]] && print "choose a layout for a pane" && retu=
rn
   _arguments -s -A "-*" -S \
+    '-E[spread the current pane and any panes next to it out evenly]' \
     '-n[behave like next-layout]' \
     '-o[revert to previous layout]' \
     '-p[behave like previous-layout]' \
-    '-t+[specify a target window]:target window:__tmux-windows' \
+    '-t+[specify a target pane]:target pane:__tmux-panes' \
     ':layout:(even-horizontal even-vertical main-horizontal main-vertical=
 tiled)'
 }
 =

diff --git a/Completion/Unix/Command/_user_admin b/Completion/Unix/Command=
/_user_admin
index 7eeec7e9b..fe28c13f5 100644
--- a/Completion/Unix/Command/_user_admin
+++ b/Completion/Unix/Command/_user_admin
@@ -150,6 +150,7 @@ case ${service%???}:${(M)service%???}:$OSTYPE in
   *:*:linux*)
     args+=3D(
       '(-R --root)'{-R,--root=3D}'[specify directory to chroot into]:dire=
ctory:_directories'
+      '(-P --prefix)'{-P,--prefix=3D}"[specify root directory to apply ch=
anges in but don't chroot]:directory:_directories"
       '(-D -U -L -p --password)'{-p+,--password=3D}'[specify encrypted pa=
ssword]:encrypted password'
       '(-)'{-h,--help}'[display help information]'
     )
diff --git a/Completion/Unix/Command/_wget b/Completion/Unix/Command/_wget
index 1a7e2d0a3..2a4e722d8 100644
--- a/Completion/Unix/Command/_wget
+++ b/Completion/Unix/Command/_wget
@@ -22,6 +22,7 @@ _arguments -C -s \
   '(--config)--no-config' '--rejected-log=3D:file:_files' \
   '(--tries -t)'{--tries=3D,-t+}'[set number of retries]:number of retrie=
s' \
   '--retry-connrefused[retry even if connection is refused]' \
+  '--retry-on-http-error=3D[specify list of HTTP errors to retry]:http er=
ror' \
   '(--output-document -O)'{--output-document=3D,-O+}'[specify file to wri=
te documents to]:output file:_files' \
   '(--continue -c)'{--continue,-c}'[continue getting an existing file]'  =
\
   '--start-pos=3D:offset' '--show-progress' \
@@ -38,8 +39,7 @@ _arguments -C -s \
   '(--wait -w)'{--wait=3D,-w+}'[specify wait between retrievals]:time (se=
conds)' \
   '(--random-wait)--waitretry=3D:time (seconds)' \
   '(--waitretry)--random-wait[random wait time between retrievals]' \
-  '(--proxy -Y --no-proxy)'{--proxy=3D,-Y+}'[explicitly turn on proxy]' \
-  '(--proxy -Y --no-proxy)--no-proxy[explicitly turn off proxy]' \
+  '--no-proxy[explicitly turn off proxy]' \
   '(--quota -Q)'{--quota=3D,-Q+}'[set retrieval quota]:number' \
   '--bind-address=3D[specify address to bind to (hostname or IP)]:bind ad=
dress:_bind_addresses' \
   '--limit-rate=3D[specify limit to download rate]:download rate limit' \
@@ -48,7 +48,7 @@ _arguments -C -s \
   '--ignore-case[ignore case when matching files/directories]' \
   '(-4 --inet4-only -6 --inet6-only)'{-4,--inet4-only}'[connect only to I=
Pv4 addresses]' \
   '(-4 --inet4-only -6 --inet6-only)'{-6,--inet6-only}'[connect only to I=
Pv6 addresses]' \
-  '--prefer-family[connect first to addresses of specified family]:addres=
s family:(IPv6 IPv4 none)' \
+  '--prefer-family=3D[connect first to addresses of specified family]:add=
ress family:(IPv6 IPv4 none)' \
   '(--http-user --ftp-user)--user[set both ftp and http user]:user' \
   '(--http-password --ftp-password)--password[set both ftp and http passw=
ord]:password' \
   '(--password --http-password --ftp-password)--ask-password:[prompt for =
passwords]' \
@@ -67,7 +67,7 @@ _arguments -C -s \
   '(--user)--http-user=3D:user' \
   '(--password --ask-password)--http-password=3D:password' \
   '--no-cache[disallow server-cached data]' \
-  '--default-page=3D[specify default page name, normally index.html]' \
+  '--default-page=3D[specify default page name, normally index.html]:defa=
ult page [index.html]' \
   '(--adjust-extension -E)'{--adjust-extension,-E}'[save all HTML/CSS doc=
uments with proper extensions]' \
   "--ignore-length[ignore \`Content-Length' header field]" \
   '*--header=3D[send a custom HTTP header]:header:->header' \
@@ -93,7 +93,7 @@ _arguments -C -s \
   "--auth-no-challenge[send basic HTTP authentication without first waiti=
ng for server's challenge]" \
   '--secure-protocol=3D[choose secure protocol]:protocol:(SSLv2 SSLv3 TLS=
v1 TLSv1_1 TLSv1_2 PFS)' \
   --https-only \
-  "--no-check-certificate=3D[don't check the server certificate]" \
+  "--no-check-certificate[don't check the server certificate]" \
   '--certificate=3D[specify client certificate]:client certificate file:_=
files' \
   '--certificate-type=3D[specify client certificate type]:certificate typ=
e:(PEM DER)' \
   '--private-key=3D[specify private key file]:key file:_files' \
@@ -104,6 +104,7 @@ _arguments -C -s \
   '--pinnedpubkey=3D:file:_files' \
   '--random-file[specify file with random data for seeding generator]:fil=
e:_files' \
   '--egd-file=3D[specify filename of EGD socket]:file:_files' \
+  '--ciphers=3D[set the priority string (GnuTLS) or cipher list string (O=
penSSL) directly]:string' \
   '--no-hsts[disable HSTS]' \
   '--hsts-file[specify path of HSTS database]:file:_files' \
   '(--user)--ftp-user=3D:user' \
diff --git a/Completion/Unix/Command/_xxd b/Completion/Unix/Command/_xxd
index 1b1613a64..0034be519 100644
--- a/Completion/Unix/Command/_xxd
+++ b/Completion/Unix/Command/_xxd
@@ -26,7 +26,7 @@ arguments=3D(
   '(         -E -EBCDIC -i -include -p -postscript -plain -ps -r -revert =
             )'{-E,-EBCDIC}'[print human-readable part in EBCDIC rather th=
an ASCII]'
   '(-i -include -p -postscript -plain -ps -r -revert)'{-e,-endian}'[littl=
e-endian dump]'
   '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps -r -revert =
             )'{-i,-include}'[output in C include file style]'
-  '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps            =
             )'{-p,-postscript,-plain,-ps}'[read or write a plain hexdump =
(no line numbers or ASCII rendering)]'
+  '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps -C -capital=
ize          )'{-p,-postscript,-plain,-ps}'[read or write a plain hexdump =
(no line numbers or ASCII rendering)]'
 =

   '(-b -bits -E -EBCDIC -i -include                           -r -revert =
-u -uppercase)'{-r,-revert}'[reverse mode\: read a hex dump and output bin=
ary data]'
   '(-b -bits                                                  -r -revert =
-u -uppercase)'{-u,-uppercase}'[output upper-case hex digits]'
@@ -34,7 +34,7 @@ arguments=3D(
   '(- :)'{-h,-help}'[display usage message]'
   '(- :)'{-v,-version}'[show program version]'
   '*'{-a,-autoskip}"[a single '*' replaces runs of NUL (toggleable)]"
-
+  '(-C -capitalize)'{-C,-capitalize}'[capitalize variable names in C incl=
ude file style]'
   {-c+,-cols}'[specify number of octets per line]: :_guard "[0-9a-fA-Fx]#=
" "number of octets per line"'
   {-g+,-groupsize}'[specify the number of octets per group]: :_guard "[0-=
9]#" "number of octets per group"'
   {-l+,-len}'[specify number of octets to output]: :_guard "[0-9]#" "numb=
er of octets to output"'
diff --git a/Completion/X/Command/_qiv b/Completion/X/Command/_qiv
index d10407584..35ceec09a 100644
--- a/Completion/X/Command/_qiv
+++ b/Completion/X/Command/_qiv
@@ -5,7 +5,9 @@ _arguments -s \
   '(- *)'{-v,--version}'[display version information]' \
   '--display:display:_x_display' \
   \*{-F,--file}'[read file names from file]:file:_files' \
+  '(-B --browse)'{-B,--browse}'[scan directory of file for browsing]' \
   '(-e --center)'{-e,--center}'[disable window centering]' \
+  '(-C --cycle)'{-C,--cycle}"[don't cycle after last image]" \
   '(-w --fixed_width -W --fixed_zoom)'{-w,--fixed_width}'[use window with=
 specified width]:width' \
   '(-w --fixed_width -W --fixed_zoom)'{-W,--fixed_zoom}'[use window with =
specified zoom factor]:zoom (percentage)' \
   '(-x -y -z --root --root_t --root_s -f --file *)'{-x,--root}'[use image=
 as the current desktop background, centered]:image file:_files' \
@@ -13,6 +15,7 @@ _arguments -s \
   '(-x -y -z --root --root_t --root_s -f --file *)'{-z,--root_s}'[use ima=
ge as the current desktop background, stretched]:image file:_files' \
   '(-m --maxpect)'{-m,--maxpect}'[expand image to fit screen size]' \
   '(-t --scale_down)'{-t,--scale_down}'[shrink images to fit screen size]=
' \
+  "--trashbin[move files to user's trash bin instead of .qiv-trash when d=
eleting]" \
   '(-b --brightness)'{-b,--brightness}'[set brightness]:brightness (-32..=
32)' \
   '(-c --contrast)'{-c,--contrast}'[set contrast]:contrast (-32..32)' \
   '(-g --gamma)'{-g,--gamma}'[set gamma]:gamma (-32..32)' \
@@ -21,7 +24,7 @@ _arguments -s \
   '(-i --no_statusbar -I --statusbar)'{-I,--statusbar}'[enable statusbar]=
' \
   '(-p --transparency)'{-p,--transparency}'[enable transparency]' \
   '(-a --do_grab)'{-a,--do_grab}'[grab the pointer in windowed mode]' \
-  '(-G --disable_grab)'{-G,--disable_grab}'[disable pointer grabbing]' \
+  '(-G --disable_grab)'{-G,--disable_grab}'[disable pointer grabbing in f=
ullscreen mode]' \
   '(-o --bg_color)'{-o,--bg_color}'[set root background color]:color:_x_c=
olor' \
   '(-s --slide)'{-s,--slide}'[start slideshow immediately]' \
   '(-r --random)'{-r,--random}'[shuffle images for slideshow]' \
@@ -31,6 +34,17 @@ _arguments -s \
   '(-f --fullscreen)'{-f,--fullscreen}'[use fullscreen window on startup]=
' \
   '(-P --ignore_path_sort)'{-P,--ignore_path_sort}'[sort images by just t=
he filename]' \
   '(-M --merged_case_sort)'{-M,--merged_case_sort}'[sort images case-inse=
nsitively]' \
-  '(-N --numeric_sort)'{-N,--numeric_sort}'[numeric image sort]' \
+  '(-K --mtime_sort)'{-K,--mtime_sort}'[sort images by their modification=
 time]' \
+  '(-N --numeric_sort -K --mtime_sort)'{-N,--numeric_sort}'[numeric image=
 sort]' \
+  '(-D --no_sort -N --numeric_sort -K --mtime_sort -M --merged_case_sort =
-P --ignore_path_sort)'{-D,--no_sort}"[don't apply any sorting to the imag=
es]" \
   '(-T --watch)'{-T,--watch}'[reload the image if it changes]' \
-  '*:image file:_files -g "*.(#i)(bmp|eim|gif|jp([eg]|eg)|pcx|png|p[pngb]=
m|tif(|f)|tga|x[pb]m)(-.)"'
+  '(-u --recursivedir)'{-u,--recursivedir}'[recursively include all files=
]' \
+  '(-L --followlinks)'{-L,--followlinks}'[follow symlinks to directories]=
' \
+  '(-A --select_dir)'{-A,--select_dir}'[store selected files in specified=
 directory]:directory [.qiv-select]:_directories' \
+  '(-l --autorotate)'{-l,--autorotate}"[don't autorotate JPEGs according =
to EXIF rotation tag]" \
+  '(-q --rotate)'{-q,--rotate}'[rotate image]:angle:((1\:90 2\:180 3\:270=
))' \
+  '(-X --xineramascreen)'{-X,--xineramascreen}'[specify preferred screen]=
:screen' \
+  '(-Y --source_profile)'{-Y,--source_profile}'[specify colour profile fi=
le as source profile]:colour profile file:_files' \
+  '(-Z --display_profile)'{-Z,--display_profile}'[specify colour profile =
file as display profile]:colour profile file:_files' \
+  '--vikeys[enable movement with h/j/k/l]' \
+  '*:image file:_files -g "*.(#i)(bmp|eim|gif|ico|jp([eg]|eg)|pcx|png|p[p=
ngb]m|pjpeg|svg|tif(|f)|wmf|x[pb]m)(-.)"'
diff --git a/Completion/Zsh/Command/_which b/Completion/Zsh/Command/_which
index c43704ae8..9b789c86b 100644
--- a/Completion/Zsh/Command/_which
+++ b/Completion/Zsh/Command/_which
@@ -1,6 +1,6 @@
 #compdef which whence where type
 =

-local farg aarg cargs args state line curcontext=3D"$curcontext" ret=3D1
+local farg aarg xarg cargs args state line curcontext=3D"$curcontext" ret=
=3D1
 =

 cargs=3D( \
   '(-v -c)-w[print command type]' \
@@ -11,6 +11,7 @@ cargs=3D( \
   '*:commands:->command' )
 farg=3D'-f[output contents of functions]'
 aarg=3D'-a[print all occurrences in path]'
+xarg=3D'-x+[specify spaces to use for indentation in function expansion]:=
spaces'
 =

 case ${service} in
   whence)
@@ -19,8 +20,8 @@ case ${service} in
       '(-v -w)-c[csh-like output]' \
       "${cargs[@]}" "$farg" "$aarg" && ret=3D0
   ;;
-  where) _arguments -C -s -A "-*" -S "${cargs[@]}" && ret=3D0;;
-  which) _arguments -C -s -A "-*" -S "${cargs[@]}" "$aarg" && ret=3D0;;
+  where) _arguments -C -s -A "-*" -S "${cargs[@]}" "$xarg" && ret=3D0;;
+  which) _arguments -C -s -A "-*" -S "${cargs[@]}" "$aarg" "$xarg" && ret=
=3D0;;
   type) _arguments -C -s -A "-*" -S "${cargs[@]}" "$aarg" "$farg" && ret=3D=
0;;
 esac
 =

diff --git a/Completion/Zsh/Command/_zed b/Completion/Zsh/Command/_zed
index 211dae7df..6b68fadf0 100644
--- a/Completion/Zsh/Command/_zed
+++ b/Completion/Zsh/Command/_zed
@@ -5,5 +5,6 @@ case $service in
 (zed) _arguments -S : \
 	'(- 2):file:_files' \
 	'(1):shell function:_functions' \
+	'(1)-x+[specify spaces to use for indentation in function expansion]:spa=
ces' \
 	'(1)-f[edit function]';;
 esac