Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: completion option updates



Following is a patch to update a number of completion functions based on
diffing help output. Relevant versions are as follows.

ethtool 5.1
valgrind 3.15.0
sqlite 3.28.0
coreutils 8.31 (env)
ruby 2.6.3p62, gem 3.0.3
dig 9.11.6-P1
util-linux 2.34 (lsblk)
bash 5.0.2
ISC dhclient 4.4.1
entr 4.2
ss 190319
gnutls 3.6.7
cryptsetup 2.2.0
xsetroot 1.1.2
tree 1.8.0
GNU sed 4.7
wget 1.20.3
strace 5.0
tiff 4.0.10
links 2.19
openssh 8.0p1 - this was already done but args to -T were missed
binutils 2.32 (nm and objdump)

Oliver

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' \



Messages sorted by: Reverse Date, Date, Thread, Author