zsh-workers
 help / Atom feed
* PATCH: completion option updates
@ 2018-04-16 14:28 Oliver Kiddle
  0 siblings, 0 replies; 5+ messages in thread
From: Oliver Kiddle @ 2018-04-16 14:28 UTC (permalink / raw)
  To: Zsh workers

There's a few more options updated affecting completion functions.
Versions are:

ethtool 4.16
htop 2.2.0
pidof (procps-ng) 3.3.13
git 2.17
GNU sed 4.5
sqlite 3.23.1
ssh 7.7 - I said before that there was no changes but on closer
inspection, there are a couple.

Oliver

diff --git a/Completion/Linux/Command/_ethtool b/Completion/Linux/Command/_ethtool
index 52b8f0451..84f2837a8 100644
--- a/Completion/Linux/Command/_ethtool
+++ b/Completion/Linux/Command/_ethtool
@@ -69,7 +69,7 @@ if [[ -n $state ]]; then
   rx-frames-low|tx-usecs-low|tx-frames-low|pkt-rate-high|rx-usecs-high) ;&
   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|delete) ;&
+  dst-port|spi|l4data|vlan-etype|vlan|user-def|action|vf|queue|loc) ;&
   other|combined|tx-timer|count)
     _message -e numbers 'number'
   ;;
@@ -130,17 +130,20 @@ if [[ -n $state ]]; then
     _message -e masks mask
   ;;
   hkey)
-    _message -e keys expl 'hash key'
+    _message -e keys 'hash key'
   ;;
   hfunc)
-    _message -e functions expl 'hash function'
+    _message -e functions 'hash function'
   ;;
   flags)
-    _message -e masks expl mask
+    _message -e masks mask
   ;;
   encoding)
     _wanted encodings expl encoding compadd auto off rs baser
   ;;
+  context)
+    _message -e contexts 'RSS context'
+  ;;
   *)
     case $words[2] in
     -A|--pause)
@@ -218,7 +221,7 @@ if [[ -n $state ]]; then
       fi
           ;;
     -n|-u|--show-nfc|--show-ntuple)
-      _wanted options expl option compadd -F line - rx-flow-hash rule
+      _wanted options expl option compadd -F line - rx-flow-hash context rule
     ;;
     -N|-U|--config-nfc|--config-ntuple)
       if [[ $words[CURRENT-2] = rx-flow-hash ]]; then
@@ -231,19 +234,25 @@ if [[ -n $state ]]; then
           'f[bytes 0 and 1 of the Layer 4 header]' \
           'n[bytes 2 and 3 of the Layer 4 header]' \
           'r[discard all packets of this flow type]'
+      elif [[ $words[CURRENT-1] = delete ]]; then
+        _message -e numbers 'number'
       else
-        _wanted options expl option compadd -F line - rx-flow-hash flow-type \
+        _wanted options expl option compadd -F line - rx-flow-hash context flow-type \
             delete src dst proto src-ip dst-ip tos m tclass l4proto src-port \
             dst-port spi l4data vlan-etype vlan user-def dst-mac action vf \
-            queue loc
+            queue context loc
       fi
     ;;
+    -x|--show-rxfh-indir|--show-rxfh)
+      _wanted options expl option compadd -F line - context
+    ;;
     -X|--set-rxfh-indir|--rxfh)
       _values -S ' ' -w 'option' \
+        context \
         '(weight default)equal' \
         '(equal default)weight' \
         '(equal weight)default' \
-        hkey hfunc
+        hkey hfunc delete
     ;;
     -f|--flash)
       if (( CURRENT = 4 )); then
diff --git a/Completion/Linux/Command/_htop b/Completion/Linux/Command/_htop
index 9a6133a86..28c7512bf 100644
--- a/Completion/Linux/Command/_htop
+++ b/Completion/Linux/Command/_htop
@@ -1,10 +1,11 @@
 #compdef htop
 
 _arguments -S : \
-  '(-d --delay)'{-d+,--delay=}'[update frequency]:duration' \
+  '(-d --delay)'{-d+,--delay=}'[update frequency]:duration (tenths of seconds)' \
   '(-C --no-color --no-colour)'{-C,--no-colo{,u}r}'[monochrome mode]' \
-  '(-h --help)'{-h,--help}'[display help]' \
-  '(-p --pid)'{-p+,--pid=}'[show given pids]: : _sequence -n ${$(</proc/sys/kernel/pid_max)\:-32768} _pids' \
-  '(-s --sort-key)'{-s+,--sort-key=}'[sort by key]:key:( ${(f)"$($service --sort-key help)"} )' \
+  '(-)'{-h,--help}'[display usage information]' \
+  \*{-p+,--pid=}'[show given pids]: : _sequence -n ${$(</proc/sys/kernel/pid_max)\:-32768} _pids' \
+  '(-s --sort-key)'{-s+,--sort-key=}'[sort by key]:key:( ${(f)"$(_call_program sort-keys $words[1] --sort-key help)"} )' \
+  '(-t --tree)'{-t,--tree}'[show tree view of processes]' \
   '(-u --user)'{-u+,--user=}'[show processes of user]: : _users' \
-  '(-v --version)'{-v,--version}'[print version information]'
+  '(-)'{-v,--version}'[display version information]'
diff --git a/Completion/Linux/Command/_pidof b/Completion/Linux/Command/_pidof
index 6605e7e67..05fb23d45 100644
--- a/Completion/Linux/Command/_pidof
+++ b/Completion/Linux/Command/_pidof
@@ -10,7 +10,8 @@ _arguments -C -s -w \
   "(-s --single-shot $exargs)"{-s,--single-shot}'[return one PID only]' \
   "(-c --check-root $exargs)"{-c,--check-root}'[omit processes with different root]' \
   "(-x $exargs)"-x'[include shells running named scripts]' \
-  "($exargs)"\*{-o+,--omit-pid}'[omit processes with PIDs]:pids:_sequence -s , _pids' \
+  "($exargs)"\*{-o+,--omit-pid=}'[omit processes with PIDs]:pids:_sequence -s , _pids' \
+  '(-S --separator)'{-S+,--separator=}'[specify separator put between PIDs]:separator' \
   '*:process:->procnames' \
   && return 0
 
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index 0eb16987d..f6cec8b60 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -116,6 +116,8 @@ _git-am () {
     '(-u --utf8 --no-utf8)--no-utf8[pass -n to git mailinfo]' \
     '(-3 --3way)'{-3,--3way}'[use 3-way merge if patch does not apply cleanly]' \
     $apply_options \
+    '--quit[abort the patching operation but keep HEAD where it is]' \
+    '--show-current-patch[show the patch being applied]' \
     '(-i --interactive)'{-i,--interactive}'[apply patches interactively]' \
     '--committer-date-is-author-date[use author date as committer date]' \
     '--ignore-date[use committer date as author date]' \
@@ -637,6 +639,7 @@ _git-clone () {
     '--separate-git-dir[place .git dir outside worktree]:path to .git dir:_path_files -/' \
     '(-4 --ipv4 -6 --ipv6)'{-4,--ipv4}'[use IPv4 addresses only]' \
     '(-4 --ipv4 -6 --ipv6)'{-6,--ipv6}'[use IPv6 addresses only]' \
+    '--filter=[object filtering]:filter:_git_rev-list_filters' \
     ': :->repository' \
     ': :_directories' && ret=0
 
@@ -685,6 +688,8 @@ _git-commit () {
     $reset_author_opt \
     '(        --porcelain --dry-run)--short[dry run with short output format]' \
     '--branch[show branch information]' \
+    '!(--no-ahead-behind)--ahead-behind' \
+    "--no-ahead-behind[don't display detailed ahead/behind counts relative to upstream branch]" \
     '(--short             --dry-run)--porcelain[dry run with machine-readable output format]' \
     '(--short --porcelain --dry-run -z --null)'{-z,--null}'[dry run with NULL-separated output format]' \
     {-p,--patch}'[use the interactive patch selection interface to chose which changes to commit]' \
@@ -865,6 +870,8 @@ _git-fetch () {
     '--deepen[deepen history of shallow clone]:number of commits' \
     '(-n --no-tags -t --tags)'{-n,--no-tags}'[disable automatic tag following]' \
     '(--all -m --multiple)'{-m,--multiple}'[fetch from multiple remotes]' \
+    '(-P --prune-tags)'{-P,--prune-tags}'[prune local tags no longer on remote and clobber changed tags]' \
+    '--filter=[object filtering]:filter:_git_rev-list_filters' \
     '*:: :->repository-or-group-or-refspec' && ret=0
 
   case $state in
@@ -1431,6 +1438,7 @@ _git-rebase () {
     '(-)--edit-todo[edit interactive instruction sheet in an editor]' \
     '(-)--skip[skip the current patch]' \
     '(-)--quit[abort but keep HEAD where it is]' \
+    '(-)--show-current-patch[show the patch file being applied or merged]' \
     - options \
     '(-m --merge)'{-m,--merge}'[use merging strategies to rebase]' \
     '(-S --gpg-sign --no-gpg-sign)'{-S-,--gpg-sign=-}'[GPG-sign the commit]::key id' \
@@ -1450,6 +1458,7 @@ _git-rebase () {
     '(-p --preserve-merges --interactive)'{-p,--preserve-merges}'[try to recreate merges instead of ignoring them]' \
     {-x+,--exec=}'[with -i\: append "exec <cmd>" after each line]:command:_command_names -e' \
     '(-k --keep-empty)'{-k,--keep-empty}'[keep empty commits in the result]' \
+    '--allow-empty-message[allow rebasing commits with empty messages]' \
     '(1)--root[rebase all reachable commits]' \
     $autosquash_opts \
     '(--autostash --no-autostash)--autostash[stash uncommitted changes before rebasing and apply them afterwards]' \
@@ -1747,6 +1756,8 @@ _git-status () {
     $branch_opts \
     '(-s --short)--porcelain=-[produce machine-readable output]:version:(v1)' \
     '(-s --short)--show-stash[show stash information]' \
+    '!(--no-ahead-behind)--ahead-behind' \
+    "--no-ahead-behind[don't display detailed ahead/behind counts relative to upstream branch]" \
     '(-u --untracked-files)'{-u-,--untracked-files=-}'[show untracked files]::mode:((no\:"show no untracked files" \
                                                                                      normal\:"show untracked files and directories" \
                                                                                      all\:"also show untracked files in untracked directories (default)"))' \
@@ -1988,6 +1999,7 @@ _git-tag () {
   _arguments \
     - creation \
       '(-a --annotate -s --sign -u --local-user)'{-a,--annotate}'[create an unsigned, annotated tag]' \
+      '(-e --edit)'{-e,--edit}'[force edit of tag message]' \
       '(-a --annotate -s --sign -u --local-user)'{-s,--sign}'[create a signed and annotated tag]' \
       '(-a --annotate -s --sign)'{-u+,--local-user=}'[create a tag, annotated and signed with the given key]: :__git_gpg_secret_keys' \
       '(-f --force)'{-f,--force}'[replace existing tag]' \
@@ -2037,6 +2049,8 @@ _git-worktree() {
         prune:'prune working tree information'
         list:'list details of each worktree'
 	lock:'prevent a working tree from being pruned'
+	move:'move a working tree to a new location'
+	remove:'remove a working tree'
 	unlock:'allow working tree to be pruned, moved or deleted'
       )
 
@@ -2051,32 +2065,44 @@ _git-worktree() {
 	  else
 	    args=( ':commit:__git_commits' )
 	  fi
-          _arguments \
+          _arguments -S \
 	    '(-f --force)'{-f,--force}'[checkout branch even if already checked out in another worktree]' \
 	    '(-B --detach)-b+[create a new branch]: :__git_branch_names' \
 	    '(-b --detach)-B+[create or reset a branch]: :__git_branch_names' \
 	    '(-b -B)--detach[detach HEAD at named commit]' \
 	    '--no-checkout[suppress file checkout in new worktree]' \
-	    ':path:_files' $args && ret=0
+	    '--lock[keep working tree locked after creation]' \
+	    ':path:_directories' $args && ret=0
 	;;
         (prune)
-          _arguments \
+          _arguments -S \
 	    '(-n --dry-run)'{-n,--dry-run}"[don't remove, show only]" \
 	    '(-v --verbose)'{-v,--verbose}'[report pruned objects]' \
 	    '--expire[expire objects older than specified time]:time' && ret=0
 	;;
         (list)
-	  _arguments '--porcelain[machine-readable output]' && ret=0
+	  _arguments -S '--porcelain[machine-readable output]' && ret=0
 	;;
 	(lock)
-	  _arguments -C '--reason=[specify reason for locking]:reason' ': :->worktrees' && ret=0
-	  [[ -z $state ]] && return ret
-	;&
+	  _arguments -C -S '--reason=[specify reason for locking]:reason' ': :->worktrees' && ret=0
+	;;
+	(move)
+	  _arguments -C \
+            ': :->worktrees' \
+            ':location:_directories' && ret=0
+	;;
+	(remove)
+	  _arguments -C -S '--force[remove working trees that are not clean or that have submodules]' \
+            ': :->worktrees' && ret=0
+	;;
 	(unlock)
-	  _wanted directories expl 'working tree' compadd -S ' ' -f -M 'r:|/=* r:|=*' \
-	      ${${(M)${(f)"$(_call_program directories git worktree list --porcelain)"}:#worktree*}#* }
+	  state=worktrees
 	;;
       esac
+      if [[ $state = worktrees ]]; then
+        _wanted directories expl 'working tree' compadd -S ' ' -f -M 'r:|/=* r:|=*' \
+            ${${(M)${(f)"$(_call_program directories git worktree list --porcelain)"}:#worktree*}#* } && ret=0
+      fi
     ;;
   esac
   return ret
@@ -3442,6 +3468,7 @@ _git-prune () {
     '(-v --verbose)'{-v,--verbose}'[report all removed objects]' \
     '--progress[show progress]' \
     '--expire=[only expire loose objects older than specified date]: :__git_datetimes' \
+    '--exclude-promisor-objects[limit traversal to objects outside promisor packfiles]' \
     '*:: :__git_heads'
 }
 
@@ -4133,11 +4160,14 @@ _git-send-email () {
     '--cc-cover[copy the Cc: list from the first file to the rest]' \
     '--compose[edit introductory message for patch series]' \
     '--from=[specify sender]:email address:_email_addresses' \
+    '--reply-to=[specify Reply-To address]:email address:_email_addresses' \
     '--in-reply-to=[specify contents of first In-Reply-To header]:message-id' \
     '--subject=[specify the initial subject of the email thread]:subject' \
     '--to=[specify the primary recipient of the emails]: :_email_addresses' \
+    "--no-xmailer[don't add X-Mailer header]" \
     '--8bit-encoding=[encoding to use for non-ASCII messages]: :__git_encodings' \
     '--compose-encoding=[encoding to use for compose messages]: :__git_encodings' \
+    '--transfer-encoding=[specify transfer encoding to use]:transfer encoding:(quoted-printable 8bit base64)' \
     '--envelope-sender[specify the envelope sender used to send the emails]: :_email_addresses' \
     '--smtp-encryption=[specify encryption method to use]: :__git_sendemail_smtpencryption_values' \
     '--smtp-domain=[specify FQDN used in HELO/EHLO]: :_domains' \
@@ -4147,7 +4177,10 @@ _git-send-email () {
     '--smtp-server-option=[specify the outgoing SMTP server option to use]:SMPT server option' \
     '--smtp-ssl-cert-path=[path to ca-certificates (directory or file)]:ca certificates path:_files' \
     '--smtp-user=[specify user to use for SMTP-AUTH]:smtp user:_users' \
+    '--smtp-auth=[specify allowed AUTH mechanisms]:space-separated list of mechanisms' \
     '--smtp-debug=[enable or disable debug output]:smtp debug:((0\:"disable" 1\:"enable"))' \
+    '--batch-size=[specify maximum number of messages per connection]:number' \
+    '--relogin-delay=[specify delay between successive logins]:delay (seconds)' \
     '--cc-cmd=[specify command to generate Cc\: header with]:Cc\: command:_cmdstring' \
     '--to-cmd=[specify command to generate To\: header with]:To\: command:_cmdstring' \
     '(                 --no-chain-reply-to)--chain-reply-to[send each email as a reply to previous one]' \
@@ -4168,6 +4201,7 @@ _git-send-email () {
     '(           --no-validate)--validate[perform sanity checks on patches]' \
     '(--validate              )--no-validate[do not perform sanity checks on patches]' \
     '--force[send emails even if safety checks would prevent it]' \
+    '(- *)--dump-aliases[dump configured aliases and exit]' \
     '*: : _alternative -O expl
       "files:file:_files"
       "commits:recent commit object name:__git_commit_objects_prefer_recent"'
@@ -4671,7 +4705,8 @@ _git-pack-objects () {
     '--use-bitmap-index[use a bitmap index if available to speed up counting objects]' \
     '--write-bitmap-index[write a bitmap index together with the pack index]' \
     '--filter=[omit certain objects from pack file]:filter:_git_rev-list_filters' \
-    '--missing=[specify how missing objects are handled]:action:(error allow-any print)' \
+    '--missing=[specify how missing objects are handled]:action:(error allow-any allow-promisor print)' \
+    "--exclude-promisor-objects[don't pack objects in promisor packfiles]" \
     ':base-name:_files'
 }
 
@@ -5080,7 +5115,7 @@ _git-rev-list () {
     '--no-filter[turn off any previous --filter argument]' \
     '--filter-print-omitted[print a list of objects omitted by --filter]' \
     '--filter=[omit certain objects from pack file]:filter:_git_rev-list_filters' \
-    '--missing=[specify how missing objects are handled]:action:(error allow-any print)' \
+    '--missing=[specify how missing objects are handled]:action:(error allow-any allow-promisor print)' \
     '(--count --pretty --header --left-right --abbrev-commit --abbrev --parent --children)--quiet[print nothing; exit status indicates if objects are fully connected]' \
     '--use-bitmap-index[try to speed traversal using pack bitmap index if available]' \
     '--progress=-[show progress reports as objects are considered]:header' \
@@ -5197,6 +5232,7 @@ _git-daemon () {
     '--forbid-override[forbid overriding site-wide service]: :__git_daemon_service' \
     '(--no-informative-errors)--informative-errors[report more verbose errors to the client]' \
     '(--informative-errors)--no-informative-errors[report all errors as "access denied" to the client]' \
+    '--log-destination=[send log messages to the specified destination]:destination:(stderr syslog none)' \
     '*:repository:_directories'
 }
 
@@ -7071,6 +7107,7 @@ __git_setup_diff_options () {
     '--diff-filter=-[select certain kinds of files for diff]: :_guard "[AaCcDdMmRrTtUuXxBb*]#" kinds'
     '-S-[look for differences that add or remove the given string]:string'
     '-G-[look for differences whose added or removed line matches the given regex]:pattern'
+    '--find-object=[look for differences that change the number of occurrences of the specified object]:object:__git_blobs'
     '--pickaxe-all[when -S finds a change, show all changes in that changeset]'
     '--pickaxe-regex[treat argument of -S as regular expression]'
     '-O-[output patch in the order of glob-pattern lines in given file]: :_files'
diff --git a/Completion/Unix/Command/_sed b/Completion/Unix/Command/_sed
index 222798b8a..15b92a634 100644
--- a/Completion/Unix/Command/_sed
+++ b/Completion/Unix/Command/_sed
@@ -21,6 +21,7 @@ elif _pick_variant gnu=GNU unix --version; then
   args+=(
     '--follow-symlinks[follow symlinks when processing in place]'
     '(-i --in-place)'{-i-,--in-place=-}$inplace
+    '(-c --copy)'{-c,--copy}'[copy instead of rename when shuffling files in in-place mode]'
     '(-l --line-length)'{-l,--line-length=-}'[specify line-wrap length for the l command]'
     '(-r)--posix[disable GNU extensions]'
     '(-E -r --regexp-extended)'{-E,-r,--regexp-extended}$extended
diff --git a/Completion/Unix/Command/_sqlite b/Completion/Unix/Command/_sqlite
index f63f4c085..58f7a9116 100644
--- a/Completion/Unix/Command/_sqlite
+++ b/Completion/Unix/Command/_sqlite
@@ -41,6 +41,7 @@ options+=(
 )
 
 (( $+sqlite3 )) && options+=(
+  $^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-command'
   '(-*batch -*interactive)'$^dashes'-batch[force batch I/O]'
@@ -49,6 +50,7 @@ options+=(
   $^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'
+  $^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 unix-none unix-namedsem)'
 )
diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh
index 2aae7027e..9c827d655 100644
--- a/Completion/Unix/Command/_ssh
+++ b/Completion/Unix/Command/_ssh
@@ -32,6 +32,7 @@ _ssh () {
     _arguments -C -s \
       '(-a)-A[enable forwarding of the authentication agent connection]' \
       '(-A)-a[disable forwarding of authentication agent connection]' \
+      '-B+[bind to specified interface before attempting to connect]:interface:_net_interfaces' \
       '(-P)-b+[specify interface to transmit on]:bind address:_bind_addresses' \
       '-D+[specify a dynamic port forwarding]:dynamic port forwarding:->dynforward' \
       '-e+[set escape character]:escape character (or `none'\''):' \
@@ -90,6 +91,8 @@ _ssh () {
       '-k[load plain private keys only and skip certificates]' \
       '-L[list public key parameters of all identities in the agent]'\
       '-l[list all identities]' \
+      '-m+[specify minimum remaining signatures before maximum is changed]:number' \
+      '-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):' \
       '-q[be quiet after a successful operation]' \


^ permalink raw reply	[flat|nested] 5+ messages in thread

* PATCH: completion option updates
@ 2019-05-22  0:01 Oliver Kiddle
  2019-05-22  1:54 ` dana
  0 siblings, 1 reply; 5+ messages in thread
From: Oliver Kiddle @ 2019-05-22  0:01 UTC (permalink / raw)
  To: Zsh workers

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PATCH: completion option updates
  2019-05-22  0:01 Oliver Kiddle
@ 2019-05-22  1:54 ` dana
  2019-05-22  9:21   ` Oliver Kiddle
  0 siblings, 1 reply; 5+ messages in thread
From: dana @ 2019-05-22  1:54 UTC (permalink / raw)
  To: Oliver Kiddle; +Cc: Zsh workers

On 21 May 2019, at 19:01, Oliver Kiddle <okiddle@yahoo.co.uk> wrote:
> openssh 8.0p1 - this was already done but args to -T were missed

Correct me if i've missed something, but i don't think this is right.
ssh-add's help output does say that -T takes an argument, but the actual
source indicates that it doesn't — the flag's effect is applied to the tool's
normal operands (which are identity files).

I remember double-checking this because i was otherwise just going off the
release notes

dana


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PATCH: completion option updates
  2019-05-22  1:54 ` dana
@ 2019-05-22  9:21   ` Oliver Kiddle
  2019-05-22 10:23     ` dana
  0 siblings, 1 reply; 5+ messages in thread
From: Oliver Kiddle @ 2019-05-22  9:21 UTC (permalink / raw)
  To: dana; +Cc: Zsh workers

dana wrote:
> > openssh 8.0p1 - this was already done but args to -T were missed
>
> Correct me if i've missed something, but i don't think this is right.
> ssh-add's help output does say that -T takes an argument, but the actual
> source indicates that it doesn't ??? the flag's effect is applied to the tool's
> normal operands (which are identity files).

That is correct but note that the patch uses the :*: _arguments
form to handle all arguments following -T. The man page for ssh-add,
indicates that -T can't be used in combination with any other options.
So following -T, the only thing that is valid is public key files. So
_files with a *.pub glob is slightly more specific than the full _files
that is otherwise used. If, contrary to the man page, you can usefully
do things like ssh-add -T -v pubkey then it is probably better left as
you had it.

Oliver

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PATCH: completion option updates
  2019-05-22  9:21   ` Oliver Kiddle
@ 2019-05-22 10:23     ` dana
  0 siblings, 0 replies; 5+ messages in thread
From: dana @ 2019-05-22 10:23 UTC (permalink / raw)
  To: Oliver Kiddle; +Cc: Zsh workers

On 22 May 2019, at 04:21, Oliver Kiddle <okiddle@yahoo.co.uk> wrote:
> That is correct but note that the patch uses the :*: _arguments
> form to handle all arguments following -T. The man page for ssh-add,
> indicates that -T can't be used in combination with any other options.

Ah, you're right. I think it's fine then

dana


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, back to index

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-16 14:28 PATCH: completion option updates Oliver Kiddle
2019-05-22  0:01 Oliver Kiddle
2019-05-22  1:54 ` dana
2019-05-22  9:21   ` Oliver Kiddle
2019-05-22 10:23     ` dana

zsh-workers

Archives are clonable: git clone --mirror http://inbox.vuxu.org/zsh-workers

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.zsh.workers


AGPL code for this site: git clone https://public-inbox.org/ public-inbox