about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorOliver Kiddle <okiddle@yahoo.co.uk>2019-05-23 01:19:02 +0200
committerOliver Kiddle <okiddle@yahoo.co.uk>2019-05-23 01:19:02 +0200
commit6a0874cad65d7949b3bcc2b082f9c6d6b9225a2a (patch)
tree98e4c5a865f9a84e10cbaa467cc7f4d50526a468 /Completion
parenta531a1ec2dce97c1507a45abd4795b1aea1edc9e (diff)
downloadzsh-6a0874cad65d7949b3bcc2b082f9c6d6b9225a2a.tar.gz
zsh-6a0874cad65d7949b3bcc2b082f9c6d6b9225a2a.tar.xz
zsh-6a0874cad65d7949b3bcc2b082f9c6d6b9225a2a.zip
44349: completion option updates
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Linux/Command/_cryptsetup20
-rw-r--r--Completion/Linux/Command/_ethtool18
-rw-r--r--Completion/Linux/Command/_lsblk6
-rw-r--r--Completion/Linux/Command/_ss1
-rw-r--r--Completion/Linux/Command/_strace1
-rw-r--r--Completion/Linux/Command/_valgrind6
-rw-r--r--Completion/Unix/Command/_bash1
-rw-r--r--Completion/Unix/Command/_dhclient6
-rw-r--r--Completion/Unix/Command/_dig1
-rw-r--r--Completion/Unix/Command/_entr3
-rw-r--r--Completion/Unix/Command/_env4
-rw-r--r--Completion/Unix/Command/_gem33
-rw-r--r--Completion/Unix/Command/_gnutls6
-rw-r--r--Completion/Unix/Command/_links8
-rw-r--r--Completion/Unix/Command/_nm2
-rw-r--r--Completion/Unix/Command/_objdump3
-rw-r--r--Completion/Unix/Command/_ruby14
-rw-r--r--Completion/Unix/Command/_sed1
-rw-r--r--Completion/Unix/Command/_sqlite2
-rw-r--r--Completion/Unix/Command/_ssh2
-rw-r--r--Completion/Unix/Command/_tiff4
-rw-r--r--Completion/Unix/Command/_tree1
-rw-r--r--Completion/Unix/Command/_wget9
-rw-r--r--Completion/X/Command/_x_utils3
24 files changed, 123 insertions, 32 deletions
diff --git a/Completion/Linux/Command/_cryptsetup b/Completion/Linux/Command/_cryptsetup
index ddb2ad3a9..45159d0be 100644
--- a/Completion/Linux/Command/_cryptsetup
+++ b/Completion/Linux/Command/_cryptsetup
@@ -6,7 +6,8 @@ local -a actions state line expl
 (( $#words > 2 )) && ign='!'
 _arguments -s \
   '(-v --verbose)'{-v,--verbose}'[enable verbose mode]' \
-  '--debug[enable debug mode]' \
+  '--debug[show debug messages]' \
+  '--debug-json[show debug messages including JSON metadata]' \
   '(-c --cipher)'{-c+,--cipher=}'[set cipher]:cipher specification' \
   '(-h --hash)'{-h+,--hash=}'[hash algorithm]:hash algorithm' \
   '(-y --verify-passphrase)'{-y,--verify-passphrase}'[query for password twice]' \
@@ -48,6 +49,7 @@ _arguments -s \
   '--perf-same_cpu_crypt[use dm-crypt same_cpu_crypt performance compatibility option]' \
   '--perf-submit_from_crypt_cpus[use dm-crypt submit_from_crypt_cpus performance compatibility option]' \
   '--deferred[device removal is deferred until the last user closes it]' \
+  '--serialize-memory-hard-pbkdf[use global lock to serialize memory]' \
   '--pbkdf=[specify PBKDF algorithm for LUKS2]:algorithm:(argon2i argon2id pbkdf2)' \
   '--pbkdf-memory=[specify PBKDF memory cost limit]:limit (kilobytes)' \
   '--pbkdf-parallel=[specify PBKDF parallel cost]:threads' \
@@ -67,6 +69,19 @@ _arguments -s \
   '--subsystem=[set subsystem label for the LUKS2 device]:subsystem' \
   '--unbound[create unbound (no assigned data segment) LUKS2 keyslot]' \
   '--json-file=[read or write token to json file]:json file:_files -g "*.json(-.)"' \
+  '--luks2-metadata-size=[specify LUKS2 header metadata area size]:size (bytes)' \
+  '--luks2-keyslots-size=[specify LUKS2 header keyslots area size]:size (bytes)' \
+  '--refresh[refresh (reactivate) device with new parameters]' \
+  '--keyslot-key-size=[specify size of the encryption key]:size (bits)' \
+  '--keyslot-cipher=[specify cipher used for LUKS2 keyslot encryption]:cipher' \
+  '--encrypt[Encrypt LUKS2 device (in-place encryption)]' \
+  '--decrypt[decrypt LUKS2 device (remove encryption)]' \
+  '--init-only[initialize LUKS2 reencryption in metadata only]' \
+  '--reduce-device-size=[reduce data device size (move data offset)]:size (bytes)' \
+  '--hotzone-size=[specify maximal reencryption hotzone size]:size (bytes)' \
+  '--resilience=[specify reencryption hotzone resilience type]:resilience type:(checksum journal none)' \
+  '--resilience-hash=[specify reencryption hotzone checksums hash]:string' \
+  '--active-name=[override device autodetection of dm device to be reencrypted]:string' \
   "${ign}(- : *)--version[show version information]" \
   "${ign}(- : *)"{-\?,--help}'[display help information]' \
   "${ign}(- : *)--usage[display brief usage]" \
@@ -82,6 +97,7 @@ case $state in
       'resize:resize an active mapping'
       'benchmark:benchmark cipher'
       'repair:try to repair on-disk metadata'
+      'reencrypt:reencrypt LUKS2 device'
       'erase:erase all keyslots'
       'convert:convert LUKS from/to LUKS2 format'
       'config:set permanent configuration options for LUKS2'
@@ -114,7 +130,7 @@ case $state in
       benchmark) args=( '--cipher=:cipher' );;
       luksKillSlot) args=( $device ':key slot number' );;
       remove|status|resize|*lose|luksSuspend|luksResume) args=( $mapping );;
-      erase|convert|config|repair|(luks(AddKey|Erase|RemoveKey|DelKey|UUID|Dump)|isLuks))
+      erase|convert|config|repair|reencrypt|(luks(AddKey|Erase|RemoveKey|DelKey|UUID|Dump)|isLuks))
 	args=( $device )
       ;;
       luks(Format|AddKey|RemoveKey|ChangeKey|ConvertKey))
diff --git a/Completion/Linux/Command/_ethtool b/Completion/Linux/Command/_ethtool
index 33b7681dc..dccda4684 100644
--- a/Completion/Linux/Command/_ethtool
+++ b/Completion/Linux/Command/_ethtool
@@ -48,7 +48,8 @@ _arguments -C \
   '--get-phy-tunable[get PHY tunable]' \
   '--reset[reset hardware components]' \
   '--show-fec[query device for forward error correction support]' \
-  '--set-fec[configure forward error correction for device]' && return
+  '--set-fec[configure forward error correction for device]' \
+  {-Q,--per-queue}'[apply per-queue command]' && return
 
 if [[ -n $state ]]; then
   case $words[CURRENT-1] in
@@ -61,7 +62,7 @@ if [[ -n $state ]]; then
       _wanted onoff expl 'enabled' compadd off on
     fi
   ;;
-  autoneg|adaptive-[rt]x|raw|hex|sg|tso|ufo|gso|lro|eee|tx-lpi|downshift)
+  autoneg|adaptive-[rt]x|raw|hex|sg|tso|ufo|gso|lro|eee|tx-lpi|downshift|fast-link-down)
     _wanted onoff expl 'enabled' compadd off on
   ;;
   rx-usecs|rx-frames|rx-usecs-irq|rx-frames-irq|tx-usecs|tx-frames) ;&
@@ -70,7 +71,7 @@ if [[ -n $state ]]; then
   rx-frames-high|tx-usecs-high|tx-frames-high|sample-interval|dmac|rx-mini) ;&
   rx-jumbo|offset|length|magic|value|phyad|proto|tos|tclass|l4proto|src-port) ;&
   dst-port|spi|l4data|vlan-etype|vlan|user-def|action|vf|queue|loc) ;&
-  other|combined|tx-timer|count)
+  other|combined|tx-timer|count|msecs)
     _message -e numbers 'number'
   ;;
   speed)
@@ -279,10 +280,10 @@ if [[ -n $state ]]; then
       _wanted behaviours expl behaviour compadd -F line - eee advertise tx-lpi tx-timer
     ;;
     --set-phy-tunable)
-      _wanted options expl tunable compadd -F line - downshift count
+      _wanted options expl tunable compadd -F line - downshift count fast-link-down msecs
     ;;
     --get-phy-tunable)
-      _wanted options expl tunable compadd downshift
+      _wanted options expl tunable compadd downshift fast-link-down
     ;;
     --reset)
       _wanted components expl component compadd flags dedicated all \
@@ -295,6 +296,13 @@ if [[ -n $state ]]; then
         _wanted encodings expl encoding compadd -F line auto off rs baser
       fi
     ;;
+    -Q|--pre-queue)
+      if (( CURRENT == 4 )); then
+        _wanted options expl option compadd - queue_mask
+      elif (( CURRENT == 6)); then
+        _wanted options expl option compadd -c --show-coalescing -C --coalesce
+      fi
+    ;;
     esac
   ;;
   esac
diff --git a/Completion/Linux/Command/_lsblk b/Completion/Linux/Command/_lsblk
index a95ebe776..8a9bc18bf 100644
--- a/Completion/Linux/Command/_lsblk
+++ b/Completion/Linux/Command/_lsblk
@@ -1,11 +1,12 @@
 #compdef lsblk
 
 local sep ret=1
-local -a values dedup suf=( -qS , )
+local -a values dedup suf
 local curcontext="$curcontext" state line expl
 typeset -A opt_args
 
 _arguments -C -s -S \
+  '(H -E --dedup)'{-E+,--dedup=}'[de-duplicate output by specified column]:column:->columns' \
   '(H -a --all)'{-a,--all}'[print all devices]' \
   '(H -b --bytes)'{-b,--bytes}'[print size in bytes rather than in human readable format]' \
   '(H -d --nodeps)'{-d,--nodeps}"[don't print slaves or holders]" \
@@ -30,7 +31,7 @@ _arguments -C -s -S \
   '(H)'{-i,--ascii}'[output ascii characters only]' \
   '(H)'{-J,--json}'[use JSON output format]' \
   '(H)'{-l,--list}'[use list format output]' \
-  '(H)'{-t,--tree}'[use tree format output]' \
+  '(H)'{-T+,--tree=}'[use tree format output]:column:->columns' \
   '(H)'{-P,--pairs}'[use key="value" output format]' \
   '(H)'{-r,--raw}'[use raw output format]' \
   + 'H' \
@@ -44,6 +45,7 @@ case $state in
   ;|
   *list)
     dedup=( ${(Ms.,.)PREFIX##*,} ${(Ms.,.)SUFFIX%%,*} )
+    suf=( -qS , )
     compset -S ',*' && suf=()
     compset -P '*,'
   ;|
diff --git a/Completion/Linux/Command/_ss b/Completion/Linux/Command/_ss
index b1bfa207c..f19b94995 100644
--- a/Completion/Linux/Command/_ss
+++ b/Completion/Linux/Command/_ss
@@ -20,6 +20,7 @@ _arguments -C -s \
   "($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)--tos[show tos and priority information]" \
   "($info -b --bpf)"{-b,--bpf}'[show bpf filter socket information]' \
   "($info -E --events)"{-E,--events}'[continually display sockets as they are destroyed]' \
   "($info -Z --context)"{-Z,--context}'[display process SELinux security contexts]' \
diff --git a/Completion/Linux/Command/_strace b/Completion/Linux/Command/_strace
index 83ccc6afb..e6dc88659 100644
--- a/Completion/Linux/Command/_strace
+++ b/Completion/Linux/Command/_strace
@@ -19,6 +19,7 @@ _arguments -C -s \
   '(-c)-T[show the time spent in system calls]' \
   '(-xx)-x[print all non-ASCII strings in hexadecimal string format]' \
   '(-x)-xx[print all strings in hexadecimal string format]' \
+  '-X+[set the format for printing of named constants and flags]:format:(raw abbrev verbose)' \
   '(-c -yy)-y[print paths associated with file descriptor arguments]' \
   '(-c -y)-yy[print protocol specific information associated with socket file descriptors]' \
   '(-C -i -k -r -ff -t -tt -ttt -T -y -yy)-c[count time, calls, and errors for each system call and report a summary]' \
diff --git a/Completion/Linux/Command/_valgrind b/Completion/Linux/Command/_valgrind
index 21b7d88c7..4a710e7f7 100644
--- a/Completion/Linux/Command/_valgrind
+++ b/Completion/Linux/Command/_valgrind
@@ -39,6 +39,8 @@ common_report_errors=(
   '--exit-on-first-error=-[exit on the first error]:enable:(yes no)' \
   '--error-exitcode=-[exit code to return if errors found]:exit code' \
   '--error-markers=-[add lines with begin/end markers before/after]:markers (begin,end)' \
+  '(--show-error-list)-s[show detected errors list and suppression counts at exit]' \
+  '--show-error-list=-[show detected errors list and suppression counts at exit]:enable [no]:(yes no)'
   '--keep-debuginfo=-[keep symbols etc for unloaded code]:enable:(yes no)' \
   '--show-below-main=-[continue stack traces below main()]:enable [no]:(yes no)' \
   '--default-suppression=-[load default suppressions]:enable [yes]:(yes no)' \
@@ -84,6 +86,7 @@ args_addrcheck=(
 args_drd=(
   $common_own_malloc
   $common_read_varinfo
+  $common_report_errors
   '--check-stack-var=-[detect data races on stack variables]:enable [no]:(yes no)'
   '--exclusive-threshold=-[print an error if any mutex or writer lock is held longer than specified time]:time (ms)'
   '--first-race-only=-[report only the first detected data race]:enable [no]:(yes no)'
@@ -111,6 +114,7 @@ args_drd=(
 args_memcheck=(
   $args_addrcheck
   $common_read_varinfo
+  $common_report_errors
 )
 
 args_cachegrind=(
@@ -125,6 +129,7 @@ args_cachegrind=(
 args_helgrind=(
   $common_own_malloc
   $common_read_varinfo
+  $common_report_errors
   '--free-is-write=-[treat heap frees as writes]:enable [no]:(yes no)'
   '--track-lockorders=-[show lock ordering errors]:enable [yes]:(no yes)'
   '--history-level=-[specify amount of history to show for data races]:level [full]:((
@@ -186,6 +191,7 @@ args_exp_dhat=(
 
 args_exp_sgcheck=(
   $common_partial
+  $common_report_errors
   '--enable-sg-checks=-[enable stack & global array checking]:enable [yes]:(yes no)'
 )
 
diff --git a/Completion/Unix/Command/_bash b/Completion/Unix/Command/_bash
index cc219f788..383b369cb 100644
--- a/Completion/Unix/Command/_bash
+++ b/Completion/Unix/Command/_bash
@@ -22,6 +22,7 @@ args=(
   '--noprofile[do not load /etc/profile, ~/.bash_profile, etc.]'
   '--norc[do not load ~/.bashrc]'
   '--posix[enable POSIX mode]'
+  '--pretty-print[format a shell script]'
   '(-r --restricted)--restricted[act as restricted shell]'
   '(: -)--version[display version information]'
   # This is ugly, but this way the + variants have accurate descriptions. Note
diff --git a/Completion/Unix/Command/_dhclient b/Completion/Unix/Command/_dhclient
index ee309e1fd..fe5347bbc 100644
--- a/Completion/Unix/Command/_dhclient
+++ b/Completion/Unix/Command/_dhclient
@@ -45,7 +45,7 @@ case $OSTYPE in
       '-g[force giaddr field]:relay:_hosts'
       '-i[use a DUID with DHCPv4 clients]'
       '-I[use the standard DDNS scheme]'
-      '--version[display version number]'
+      '(-)--version[display version number]'
       '(-4)-S[use Information-request to get only stateless configuration]'
       '(-4)*-T[ask for IPv6 temporary addresses]'
       '(-4)-P[enable IPv6 prefix delegation]'
@@ -67,6 +67,10 @@ case $OSTYPE in
       '--request-options[specify list of options the client is to request from the server]:options'
       '--timeout[specify time after which dhclient will decide that no DHCP servers can be contacted]:timeout'
       '--dad-wait-time[specify maximum time to wait for duplicate address detection]:time (seconds)'
+      '--prefix-len-hint[specify length to request when requesting new prefixes]:length'
+      '--decline-wait-time[specify time an IPv4 client should wait between declining an address and issuing a discover]:time (seconds)'
+      '--address-prefix-len[specify length of the prefix for IPv6 addresses]:length'
+      '(-)'{--help,-h}'[display usage information]'
     )
   ;;
 esac
diff --git a/Completion/Unix/Command/_dig b/Completion/Unix/Command/_dig
index d37f18643..d2ffb0a33 100644
--- a/Completion/Unix/Command/_dig
+++ b/Completion/Unix/Command/_dig
@@ -78,6 +78,7 @@ _arguments -s -C $args \
   '*-6[use IPv6 only]' \
   '*-t+[specify type]:type:_dns_types' \
   '*-q+[specify host name to query]:host:_hosts' \
+  "-r[don't read ~/.digrc]" \
   '*-x+[reverse lookup]:IP address' \
   '*-k+[specify TSIG key file]:file:_files' \
   '*-y+[specify TSIG key]:hmac\:name\:key' \
diff --git a/Completion/Unix/Command/_entr b/Completion/Unix/Command/_entr
index e1ba7cf2b..3e2261a18 100644
--- a/Completion/Unix/Command/_entr
+++ b/Completion/Unix/Command/_entr
@@ -4,11 +4,12 @@ local curcontext="$curcontext" state state_descr line ret=1
 typeset -A opt_args
 
 _arguments -s -S \
+  '(-r)-a[respond to all events rather than consolidating them to avoid looping]' \
   '-c[execute clear before invoking utility]' \
   '-d[track directories and exit if a new file is added]' \
   "-n[non-interactive mode; don't access TTY]" \
   '-p[postpone first execution of the utility]' \
-  '-r[reload a persistent child process]' \
+  '(-a)-r[reload a persistent child process]' \
   '(*)-s[evaluate the first argument using interpreter specified by $SHELL]' \
   '(-): :->command' \
   '*::arguments:_normal' && ret=0
diff --git a/Completion/Unix/Command/_env b/Completion/Unix/Command/_env
index 932a7fc89..27978d936 100644
--- a/Completion/Unix/Command/_env
+++ b/Completion/Unix/Command/_env
@@ -11,6 +11,10 @@ case $variant in
       '(--ignore-environment -i --help --version)*'{-u+,--unset=}'[remove variable from the environment]:env var to remove:_parameters -g "*export*"'
       '(-C --chdir)'{-C+,--chdir=}'[change working directory]:directory:_directories'
       '(-S --split-string)'{-S+,--split-string=}'[perform word splitting]:string to split'
+      '--block-signal=[block delivery of signals to command]:signal:_sequence _signals'
+      '--default-signal=[reset handling of signals to the default]:signal:_sequence _signals'
+      '--ignore-signal=[set handling of signals to do nothing]:signal:_sequence _signals'
+      '--list-signal-handling[list non default signal handling to stderr]'
       '(-v --debug)'{-v,--debug}'[print verbose information for each processing step]'
       "${ign}(- *)--help[display help information]"
       "${ign}(- *)--version[display version information]"
diff --git a/Completion/Unix/Command/_gem b/Completion/Unix/Command/_gem
index 512d2d193..b35a5c358 100644
--- a/Completion/Unix/Command/_gem
+++ b/Completion/Unix/Command/_gem
@@ -28,12 +28,12 @@ if [[ $state = command ]]; then
   else
     cmds=(
       build cert check cleanup contents dependency environment fetch
-      generate_index help install list lock mirror open outdated owner
+      generate_index help install info list lock mirror open outdated owner
       pristine push query rdoc search server signin signout sources
       specification stale uninstall unpack update which yank
     )
     cmds=( ${(M)cmds:#${words[1]}*} )
-    if (( ${#cmds} == 1 )); then
+    if (( ${#cmds} == 1 )) || [[ $cmds[1] = install ]]; then
       cmd="$cmds[1]"
       curcontext="${curcontext%:*:*}:gem-${cmd}:"
     fi
@@ -65,15 +65,19 @@ if [[ $state = command ]]; then
     contents|pristine|rdoc)
       args+=( '(*)--all[apply to all installed gems]' )
     ;|
-    list|query) def[local]='!' ;|
+    info|list|query) def[local]='!' ;|
     search) def[remote]='!' ;|
-    list|query|search)
+    info|list|query|search)
       args+=( ${(e)lropts}
         '(-a --all)'{-a,--all}'[display all gem versions]'
         '(-e --exact)'{-e,--exact}'[use exact string matching instead of regex]'
         '(-I --no-installed -i --installed)'{-i,--installed}'[check if gem is installed]'
         '(-I --no-installed -i --installed)'{-I,--no-installed}'[check if gem is not installed]'
         '--no-versions[display only gem names]'
+      )
+    ;|
+    list|query|search)
+      args+=(
         '(-d --details)'{-d,--details}'[display detailed gem information]'
         '!(-d --details)--no-details'
       )
@@ -114,11 +118,15 @@ if [[ $state = command ]]; then
         '--suggestions[suggest alternates when gems are not found]'
       )
     ;|
+    (un|)install|pristine|update)
+      args+=(
+        '(-n --bindir)'{-n,--bindir=}'[specify directory where binary files are located]:directory:_directories'
+      )
+    ;|
     (un|)install|update)
       args+=(
         '--ignore-dependencies[ignore dependency requirements]'
         '(-i --install-dir)'{-i,--install-dir=}'[specify gem repository directory to get installed gems]:directory:_directories'
-        '(-n --bindir)'{-n,--bindir=}'[specify directory where binary files are located]:directory:_directories'
       )
     ;|
     owner|push)
@@ -130,13 +138,18 @@ if [[ $state = command ]]; then
     owner|push|signin|yank)
       args+=( '--host=[use another gemcutter-compatible host]:host:_urls' )
     ;|
+    owner|push|signin)
+      args+=( '--otp=[specify digit code for multifactor authentication]:code' )
+    ;|
     install|pristine|update)
       args+=( '(-E --env-shebang)'{-E,--env-shebang}'[rewrite executables with a shebang of /usr/bin/env]' )
     ;|
-
     build)
       args+=(
-        '--force[skip validation of the spec]'
+        '(--strict)--force[skip validation of the spec]'
+        '(--force)--strict[consider warnings as errors when validating the spec]'
+        '(-o --output)'{-o+,--output=}'[output gem with the given filename]:file:_files'
+        '-C+[run as if specified directory was the current directory]:directory:_directories'
         '1:gemspec file:_files -g "*.gemspec(-.)"'
       )
     ;;
@@ -150,6 +163,7 @@ if [[ $state = command ]]; then
         '(-K --private-key)'{-K,--private-key=}'[specify key for --sign or --build]:key'
         '(-s --sign)'{-s,--sign=}'[sign specified certificate with the key from -K and the certificate from -C]:certificate'
         '(-d --days)'{-d,--days=}'[specify days before certificate expires]:days'
+        '(-R --re-sign)'{-R,--re-sign}'[re-sign the certificate]'
       )
     ;;
     check)
@@ -161,7 +175,10 @@ if [[ $state = command ]]; then
       )
     ;;
     cleanup)
-      args+=( '(-n -d --dryrun)'{-n,-d,--dryrun}"[don't uninstall gems]" )
+      args+=(
+        '(-n -d --dryrun)'{-n,-d,--dryrun}"[don't uninstall gems]"
+        "--user-install[cleanup in user's home directory instead of GEM_HOME]"
+      )
     ;;
     contents)
       args+=(
diff --git a/Completion/Unix/Command/_gnutls b/Completion/Unix/Command/_gnutls
index 6035c5f83..b0d33e2fa 100644
--- a/Completion/Unix/Command/_gnutls
+++ b/Completion/Unix/Command/_gnutls
@@ -60,6 +60,7 @@ case "$service" in
       '--no-ca-verification[disable CA certificate verification]' '!--ca-verification'
       '--ocsp[enable OCSP certificate verification]' '!--no-oscp'
       '(-r --resume)'{-r,--resume}'[establish a session and resume]'
+      '--earlydata=[send early data on resumption from the specified file]:file:_files'
       '(-e --rehandshake)'{-e,--rehandshake}'[connect, establish a session and rehandshake immediately]'
       "--verify-hostname-str=[specify server's hostname to use for validation]:hostname"
       '(-s --starttls)'{-s,--starttls}'[start TLS on EOF or SIGALRM]'
@@ -89,6 +90,7 @@ case "$service" in
       '--inline-commands[inline commands of the form ^<cmd>^]'
       '--inline-commands-prefix=[change delimiter used for inline commands]:delimiter [^]'
       '--fips140-mode[report status of FIPS140-2 mode in gnutls library]'
+      '--logfile=[redirect informational messages to a specific file]:file:_files'
     )
   ;;
 
@@ -97,6 +99,8 @@ case "$service" in
       '--sni-hostname-fatal[send fatal alert on sni-hostname mismatch]'
       '*--alpn=[specify ALPN protocol to be enabled by the server]:protocol'
       '--alpn-fatal[send fatal alert on non-matching ALPN name]'
+      '--earlydata[accept early data]'
+      '--maxearlydata=[specify maximum early data size to accept]:size'
       "--nocookie[don't require cookie on DTLS sessions]"
       '(-g --generate)'{-g,--generate}'[generate Diffie-Hellman parameters]'
       '(-q --quiet)'{-q,--quiet}'[suppress some messages]'
@@ -189,6 +193,8 @@ case "$service" in
       '--stdout-info[print information to stdout instead of stderr]'
       '--ask-pass[enable interaction for entering password when in batch mode]'
       '--pkcs-cipher=[specify cipher to use for pkcs operations]:cipher:(3des 3des-pkcs12 aes-128 aes-192 aes-256 rc2-40 arcfour)'
+      '!(--no-text)--text'
+      "--no-text[don't output textual information before PEM-encoded certificates, private keys, etc]"
     )
   ;;
 
diff --git a/Completion/Unix/Command/_links b/Completion/Unix/Command/_links
index 8bb9fee1c..3f55e9c8b 100644
--- a/Completion/Unix/Command/_links
+++ b/Completion/Unix/Command/_links
@@ -108,10 +108,10 @@ _arguments -C \
   '-html-target-in-new-window[allow opening new windows from html]' \
   '-html-margin[specify margin]:margin (spaces)' \
   '-html-user-font-size[specify font size in graphics mode]:size' \
-  '-html-t-text-color[specify text color in text mode]:color (0..15)' \
-  '-html-t-link-color[specify link color in text mode]:color (0..15)' \
-  '-html-t-background-color[specify background color in text mode]:color (0..15)' \
-  '-html-t-ignore-document-color[ignore colors from HTML in text mode]:ignore:(0 1)' \
+  '-html-text-color[specify text color in text mode]:color (0..15)' \
+  '-html-link-color[specify link color in text mode]:color (0..15)' \
+  '-html-background-color[specify background color in text mode]:color (0..15)' \
+  '-html-ignore-document-color[ignore colors from HTML in text mode]:ignore:(0 1)' \
   '-html-g-text-color[specify text color in graphics mode]:color (0xRRGGBB)' \
   '-html-g-link-color[specify link color in graphics mode]:color (0xRRGGBB)' \
   '-html-g-background-color[specify background color in graphics mode]:color (0xRRGGBB)' \
diff --git a/Completion/Unix/Command/_nm b/Completion/Unix/Command/_nm
index 4754a6623..423fd3223 100644
--- a/Completion/Unix/Command/_nm
+++ b/Completion/Unix/Command/_nm
@@ -59,6 +59,8 @@ if _pick_variant -r variant binutils=GNU elftoolchain=elftoolchain elfutils=elfu
     binutils)
       compset -P '@' && files='*:options file:_files'
       args+=(
+        '!(--no-recurse-limit)--recurse-limit'
+        '--no-recurse-limit[disable demangling recursion limit]'
 	'(-f --format -P)-f+[specify output format]:format:(bsd sysv posix)'
 	'(-C --no-demangle)--demangle=-[decode symbol names]::style:(auto gnu lucid arm hp edg gnu-v3 java gnat rust dlang)'
 	'--plugin[load specified plugin]:plugin'
diff --git a/Completion/Unix/Command/_objdump b/Completion/Unix/Command/_objdump
index 07dbd31de..d502f2803 100644
--- a/Completion/Unix/Command/_objdump
+++ b/Completion/Unix/Command/_objdump
@@ -24,6 +24,7 @@ case $variant in
     "*"{-P,--private=}"[Display object format specific contents]:option"
     "(-h --section-headers --headers)"{-h,--section-headers,--headers}"[Display the contents of the section headers]"
     "(-x --all-headers)"{-x,--all-headers}"[Display the contents of all headers]"
+    '--disassemble=[display assembler contents for specified symbol]:symbol'
     "(-D --disassemble-all)"{-D,--disassemble-all}"[Display assembler contents of all sections]"
     "(-S --source)"{-S,--source}"[Intermix source code with disassembly]"
     "(-g --debugging)"{-g,--debugging}"[Display debug information in object file]"
@@ -55,6 +56,8 @@ case $variant in
     "(-F --file-offsets)"{-F,--file-offsets}"[Include file offsets when displaying information]"
     "(-C --demangle)-C[Decode mangled/processed symbol names]"
     "(-C --demangle)--demangle=-[decode mangled/processed symbol names]::style:(auto gnu lucid arm hp edg gnu-v3 java gnat rust dlang)"
+    '!(--no-recurse-limit)--recurse-limit'
+    '--no-recurse-limit[disable demangling recursion limit]'
     "(-w --wide)"{-w,--wide}"[Format output for more than 80 columns]"
     "(-z --disassemble-zeroes)"{-z,--disassemble-zeroes}"[Do not skip blocks of zeroes when disassembling]"
 
diff --git a/Completion/Unix/Command/_ruby b/Completion/Unix/Command/_ruby
index d69c378fc..11df80f5d 100644
--- a/Completion/Unix/Command/_ruby
+++ b/Completion/Unix/Command/_ruby
@@ -36,15 +36,24 @@ opts=(
   '-s[enable some switch parsing for switches after script name]'
   '-S[look for the script using PATH environment variable]'
   '-T-[turn on tainting checks]::taint level [1]:((0\:strings\ from\ streams/environment/ARGV\ are\ tainted 1\:no\ dangerous\ operation\ by\ tainted\ value 2\:process/file\ operations\ prohibited 3\:all\ generated\ objects\ are\ tainted 4\:no\ global\ \(non-tainted\)\ variable\ modification/no\ direct\ output))'
-  '(-v --verbose)'{-v,--verbose}'[print version number, then turn on verbose mode]'
+  '(--verbose)-v[print version number, then turn on verbose mode]'
+  '(-v)--verbose[turn on verbose mode and disable script from stdin]'
   '-x-[strip off text before #!ruby line and perhaps cd to directory]:directory:_files -/'
   '(1 * -)--copyright[print the copyright]'
-  --{en,dis}'able=[enable or disable features]:feature:(gems did_you_mean rubyopt frozen_string_literal all)'
+  --{en,dis}'able=[enable or disable features]:feature:(gems did_you_mean rubyopt frozen_string_literal jit all)'
   \!--{en,dis}able-{gems,rubyopt,all}
   '--dump=[dump debug information]:information:_sequence compadd - insns yydebug parsetree parsetree_with_comment'
   --{external,internal}'-encoding=:charset:->charsets'
   '!'{-y,--yydebug}
   '!--dump=:target:(version copyright usage yydebug syntax parsetree parsetree_with_comment insns)'
+  '--jit[enable jit with default options]'
+  '--jit-warnings[enable printing JIT warnings]'
+  '--jit-debug[enable JIT debugging (very slow)]'
+  '--jit-wait[wait until JIT compilation is finished everytime (for testing)]'
+  '--jit-save-temps[save JIT temporary files]'
+  '--jit-verbose=-[print JIT logs of level num or less to stderr]:maximum log level [0]'
+  '--jit-max-cache=-[specify max number of methods to be JIT-ed in a cache]:number [1000]'
+  '--jit-min-calls=-[specify number of calls to trigger JIT]:calls [5]'
 )
 
 irb=(
@@ -70,7 +79,6 @@ irb=(
 
 erb=(
   "-P[don't evaluate lines which start with %]"
-  '-S[specify safe level for running script]:level:(1 2 3 4)'
   '-T[specify trim mode]:mode [0]:((0\:EOL\ remains 1\:EOL\ removed\ if\ line\ ends\ with\ %\> 2\:EOL\ removed\ if\ line\ starts\ with\ \<%\ and\ ends\ with\ %\> -\:EOL\ is\ removed\ if\ line\ ends\ with\ -%\>,\ leading\ whitespace\ removed\ after\ \<%-))'
   '(-d --debug)'{-d,--debug}'[set debugging flags (set $DEBUG to true)]'
   '-n[used with -x, prepends line number to output]'
diff --git a/Completion/Unix/Command/_sed b/Completion/Unix/Command/_sed
index f03278364..b08eaa281 100644
--- a/Completion/Unix/Command/_sed
+++ b/Completion/Unix/Command/_sed
@@ -66,6 +66,7 @@ elif _pick_variant -r variant gnu=GNU unix --version; then
   aopts=( )
   (( $#words > 2 )) && ign='!'
   args+=(
+    '--debug[annotate program execution]'
     '--follow-symlinks[follow symlinks when processing in place]'
     '(-i --in-place -s --separate)'{-i-,--in-place=-}$inplace
     '(-c --copy)'{-c,--copy}'[copy instead of rename when shuffling files in in-place mode]'
diff --git a/Completion/Unix/Command/_sqlite b/Completion/Unix/Command/_sqlite
index 4604fb40c..924b80926 100644
--- a/Completion/Unix/Command/_sqlite
+++ b/Completion/Unix/Command/_sqlite
@@ -49,6 +49,7 @@ options+=(
   '(-*batch -*interactive)'$^dashes'-batch[force batch I/O]'
   '(-*batch -*interactive)'$^dashes'-interactive[force interactive I/O]'
   $^dashes'-lookaside[specify size and number of entries for lookaside memory]:size (bytes): :entries'
+  $^dashes'-memtrace[trace all memory allocations and deallocations'
   $^dashes'-mmap[set default mmap size]:size'
   $^dashes'-newline[set output row separator]:separator [\n]'
   $^dashes'-pagecache[specify size and number of slots for page cache memory]:size (bytes): :slots'
@@ -69,6 +70,7 @@ if [[ -n $words[(r)-A*] ]]; then
     + '(commands)' \
     '(-c --create)'{-c,--create}'[create a new archive]'
     '(-u --update)'{-u,--update}'[update or add files to an existing archive]'
+    '(-i --insert)'{-i,--insert}'[like -u but always add even if mtime unchanged]'
     '(-t --list)'{-t,--list}'[list contents of archive]'
     '(-x --extract)'{-x,--extract}'[extract files from archive]'
   )
diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh
index 408f1d05d..f8f4e0091 100644
--- a/Completion/Unix/Command/_ssh
+++ b/Completion/Unix/Command/_ssh
@@ -97,7 +97,7 @@ _ssh () {
       '-M+[specify maximum number of signatures]:number' \
       '-s+[add keys provided by the PKCS#11 shared library]:library:_files -g "*.(so|dylib)(|.<->)(-.)"' \
       '-t+[set maximum lifetime for identity]:maximum lifetime (in seconds or time format):' \
-      "-T[test usability of identity files' private keys]" \
+      "-T[test usability of identity files' private keys]:*:public key file:_files -g '*.pub(-.)'" \
       '-v[verbose mode]' \
       '-q[be quiet after a successful operation]' \
       '-X[unlock the agent]' \
diff --git a/Completion/Unix/Command/_tiff b/Completion/Unix/Command/_tiff
index 128aeb0c0..da55b541c 100644
--- a/Completion/Unix/Command/_tiff
+++ b/Completion/Unix/Command/_tiff
@@ -249,7 +249,7 @@ if [[ -n "$state" ]]; then
       _message -e values "compression quality (0-100), or \`r' (output RGB)"
       ret=0
       ;;
-    lzw|lzma|zip)
+    lzw|lzma|zip|zstd|webp)
       _values 'LZW and deflate option' \
         '1[without differencing]' \
         '2[with differencing]' && ret=0
@@ -260,7 +260,7 @@ if [[ -n "$state" ]]; then
     while _tags; do
       while _next_label values expl 'compression scheme'; do
         compadd "$expl[@]" - none jbig g4 packbits sgilog && ret=0
-        compadd "$expl[@]" -qS: - lzw zip lzma jpeg g3 && ret=0
+        compadd "$expl[@]" -qS: - lzw zip lzma zstd webp jpeg g3 && ret=0
       done
       (( ret )) || return 0
     done
diff --git a/Completion/Unix/Command/_tree b/Completion/Unix/Command/_tree
index 4fd9aed44..595249126 100644
--- a/Completion/Unix/Command/_tree
+++ b/Completion/Unix/Command/_tree
@@ -49,6 +49,7 @@ _arguments -s -S \
   '(-n -C -X)-H[turn on HTML output]:base HREF' \
   '(-n -C -X)-T[title for HTML output]:title' \
   '(-n -C -X)--nolinks[turn off hyperlinks in HTML output]' \
+  '--fromfile[read paths from specified files]' \
   '(-)--version[version of tree]' \
   '(-)--help[verbose usage listing]' \
   '*:directory:_files -/'
diff --git a/Completion/Unix/Command/_wget b/Completion/Unix/Command/_wget
index 2a4e722d8..49c8e8b01 100644
--- a/Completion/Unix/Command/_wget
+++ b/Completion/Unix/Command/_wget
@@ -16,6 +16,7 @@ _arguments -C -s \
   '*-n+[turn off flags]:flags:->noflags' \
   '--report-speed=:type:(bits)' \
   '(--input-file -i)'{--input-file=,-i+}'[specify input file]:file containing URLs:_files' \
+  '--input-metalink=[download files covered in local Metalink file]:file:_files' \
   '(--force-html -F)'{--force-html,-F}'[treat input file as html]' \
   '(--base -B)'{--base=,-B+}'[prepend URL to relative links]:base URL:_urls' \
   '--config=[specify config file]:config file:_files' \
@@ -57,7 +58,11 @@ _arguments -C -s \
   '--local-encoding=[specify local encoding for IRIs]:encoding' \
   '--remote-encoding=[specify default remote encoding]:encoding' \
   '--unlink[remove file before clobber]' \
-  '--no-xattr[turn off storage of metadata in extended file attributes]' \
+  '--keep-badhash[Keep files with checksum mismatch (append .badhash)]' \
+  '--metalink-index=[metalink application/metalink4+xml metaurl ordinal]:number' \
+  '--metalink-over-http[use Metalink metadata from HTTP response headers]' \
+  '--preferred-location[preferred location for Metalink resources]' \
+  '--xattr[turn on storage of metadata in extended file attributes]' \
   '(-nd --no-directories)'{-nd,--no-directories}"[don't create directories]" \
   '(--force-directories -x)'{--force-directories,-x}'[force creation of directories]' \
   '(-nH --no-host-directories)'{-nH,--no-host-directories}"[don't create host directories]" \
@@ -102,7 +107,7 @@ _arguments -C -s \
   "--ca-directory=[specify dir where hash list of CA's are stored]:directory:_directories" \
   '--crl-file=[specify file with bundle of CRLs]:file:_files' \
   '--pinnedpubkey=:file:_files' \
-  '--random-file[specify file with random data for seeding generator]:file:_files' \
+  '!--random-file=:file:_files' \
   '--egd-file=[specify filename of EGD socket]:file:_files' \
   '--ciphers=[set the priority string (GnuTLS) or cipher list string (OpenSSL) directly]:string' \
   '--no-hsts[disable HSTS]' \
diff --git a/Completion/X/Command/_x_utils b/Completion/X/Command/_x_utils
index 13c5572af..4b98ec48e 100644
--- a/Completion/X/Command/_x_utils
+++ b/Completion/X/Command/_x_utils
@@ -150,9 +150,10 @@ xon)
   ;;
 xsetroot)
   _x_arguments \
-    -{help,def,gray,grey,rv} \
+    -{help,version,def,default,gray,grey,rv,reverse} \
     '-cursor:cursor file:_files -g \*.\(\#i\)\(xbm\|curs\(\|or\)\):mask file:_files -g \*.\(\#i\)\(xbm\|curs\(\|or\)\|mask\)\(-.\)' \
     '-cursor_name:cursor name:_x_cursor' \
+    '-xcf:cursor file:_files:size' \
     '-bitmap:bitmap file:_files -g \*.\(\#i\)xbm\(-.\)' \
     '-mod:x grid distance (1-16): :y grid distance (1-16)' \
     '-fg:foreground color:_x_color' \