diff options
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r-- | Completion/Unix/Command/_cowsay | 39 | ||||
-rw-r--r-- | Completion/Unix/Command/_git | 88 | ||||
-rw-r--r-- | Completion/Unix/Command/_gsettings | 5 | ||||
-rw-r--r-- | Completion/Unix/Command/_gzip | 7 | ||||
-rw-r--r-- | Completion/Unix/Command/_ssh | 113 | ||||
-rw-r--r-- | Completion/Unix/Command/_sudo | 3 | ||||
-rw-r--r-- | Completion/Unix/Command/_tidy | 8 | ||||
-rw-r--r-- | Completion/Unix/Command/_tmux | 72 | ||||
-rw-r--r-- | Completion/Unix/Command/_truss | 3 | ||||
-rw-r--r-- | Completion/Unix/Command/_wget | 4 |
10 files changed, 190 insertions, 152 deletions
diff --git a/Completion/Unix/Command/_cowsay b/Completion/Unix/Command/_cowsay index 19e73811c..8a1b4c4c9 100644 --- a/Completion/Unix/Command/_cowsay +++ b/Completion/Unix/Command/_cowsay @@ -3,26 +3,29 @@ local context state line typeset -A opt_args -_arguments \ - '-e:eye string:' \ - '-f:cowfile:->cowfile' \ - '-T:tongue string:' \ - '-W:wrap column:' \ - '-b[borg mode]' \ - '-d[dead mode]' \ - '-g[greedy mode]' \ - '-h[help]' \ - '-l[list]' \ - '-n[no wordwrap]' \ - '-p[paranoia mode]' \ - '-s[stoned mode]' \ - '-t[tired mode]' \ - '-w[wired mode]' \ - '-y[youthful mode]' \ - ':message:' && return 0 +_arguments -s -S -A "-*" \ + "(H mode)-e+[specify cow's eyes]:eye string [oo]" \ + '(H)-f+[specify cowfile]:cowfile:->cowfile' \ + "(H mode)-T+[specify cow's tongue]:tongue string" \ + '(H)-W+[specify width for message word wrap]:wrap column [40]' \ + '(H)-n[no wordwrap]' \ + '*:message' \ + + 'H' \ + '(- *)-h[display usage information]' \ + '(- *)-l[list all cowfiles]' \ + + '(mode)' \ + '(H -e -T)-b[borg mode]' \ + '(H -e -T)-d[dead mode]' \ + '(H -e -T)-g[greedy mode]' \ + '(H -e -T)-p[paranoia mode]' \ + '(H -e -T)-s[stoned mode]' \ + '(H -e -T)-t[tired mode]' \ + '(H -e -T)-w[wired mode]' \ + '(H -e -T)-y[youthful mode]' && return case "$state" in (cowfile) - compadd ${=${(f)"$($service -l 2>/dev/null)"}:#*\:} || _files + _wanted -C option-f-1 cowfiles expl 'cow file' compadd \ + ${=${(f)"$(_call_program cowfiles $words[1] -l)"}:#*\:} || _files -g "*.cow(-.)" ;; esac diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index a46da5b3c..30ca80835 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -60,9 +60,10 @@ _git-add () { '(-i --interactive : -)'{-i,--interactive}'[add contents interactively to index]' \ '(-p --patch)'{-p,--patch}'[like -i but go directly into patch mode for specified files]' \ '(-e --edit)'{-e,--edit}'[open diff against index in editor]' \ - '(-A --all --no-ignore-removal -u --update --no-all --ignore-removal)'{-A,--all,--no-ignore-removal}'[add, modify, and remove index entries to match the working tree]' \ - '(-A --all --no-ignore-removal -u --update --no-all --ignore-removal)'{--no-all,--ignore-removal}'[like "--all" but ignore removals]' \ + '(-A --all --no-ignore-removal -u --update --no-all --ignore-removal --renormalize)'{-A,--all,--no-ignore-removal}'[add, modify, and remove index entries to match the working tree]' \ + '(-A --all --no-ignore-removal -u --update --no-all --ignore-removal --renormalize)'{--no-all,--ignore-removal}'[like "--all" but ignore removals]' \ '(-A --all --no-ignore-removal -u --update --no-all --ignore-removal)'{-u,--update}'[update the index just where it already has an entry matching <pathspec>]' \ + '(-A --all --no-ignore-removal -u --update --no-all --ignore-removal)--renormalize[renormalize EOL of tracked files (implies -u)]' \ '(-N --intent-to-add)'{-N,--intent-to-add}'[record only that path will be added later]' \ '--refresh[do not add files, but refresh their stat() info in index]' \ '--ignore-errors[continue adding if an error occurs]' \ @@ -1207,7 +1208,6 @@ _git-merge () { '--abort[restore the original branch and abort the merge operation]' \ '--continue[continue the current in-progress merge]' \ '--progress[force progress reporting]' \ - '--signoff[add Signed-off-by:]' \ '--verify[verify commit-msg hook]' \ '*: : __git_commits -O expl:git_commit_opts' } @@ -1751,7 +1751,7 @@ _git-status () { normal\:"show untracked files and directories" \ all\:"also show untracked files in untracked directories (default)"))' \ '--ignore-submodules[ignore changes to submodules]:: :__git_ignore_submodules_whens' \ - '--ignored[show ignored files as well]' \ + '--ignored=-[show ignored files as well]:mode [traditional]:(traditional matching no)' \ '(-z --null --column --no-column)'{-z,--null}'[use NUL termination on output]' \ '(--no-column -z --null)--column=-[display in columns]::column.status option:((always\:"always show in columns" never\:"never show in columns" auto\:"show in columns if the output is to the terminal" column\:"fill columns before rows (default)" row\:"fill rows before columns" plain\:"show in one column" dense\:"make unequal size columns to utilize more space" nodense\:"make equal size columns"))' \ '(--column)--no-column[do not display in columns]' \ @@ -2126,10 +2126,11 @@ _git-config () { '(--global --system -f --file --blob)--local[use local config file]' \ '(--global --system --local --blob)'{-f+,--file=}'[use given config file]:config file:_files' \ '(--global --system --local -f --file)--blob=[read config from given blob object]:blob:__git_blobs' \ - '( --int --bool-or-int --path)--bool[setting is a boolean]' \ - '(--bool --bool-or-int --path)--int[setting is an integer]' \ - '(--bool --int --path)--bool-or-int[setting is an integer]' \ - '(--bool --int --bool-or-int )--path[setting is a path]' \ + '( --int --bool-or-int --path --expiry-date)--bool[setting is a boolean]' \ + '(--bool --bool-or-int --path --expiry-date)--int[setting is an integer]' \ + '(--bool --int --path --expiry-date)--bool-or-int[setting is an integer]' \ + '(--bool --int --bool-or-int --expiry-date)--path[setting is a path]' \ + '(--bool --int --bool-or-int --path )--expiry-date[setting is an expiry date]' \ '(-z --null)'{-z,--null}'[end values with NUL and newline between key and value]' \ '(--get --get-all --get-urlmatch --replace-all --add --unset --unset-all --rename-section --remove-section -e --edit --get-color --get-colorbool)--name-only[show variable names only]' \ '(--includes)'--no-includes"[don't respect \"include.*\" directives]" \ @@ -4669,6 +4670,8 @@ _git-pack-objects () { '--keep-true-parents[pack parents hidden by grafts]' \ '--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)' \ ':base-name:_files' } @@ -4781,6 +4784,10 @@ _git-update-index () { '--untracked-cache[enable/disable untracked cache]' \ '--test-untracked-cache[test if the filesystem supports untracked cache]' \ '--force-untracked-cache[enable untracked cache without testing the filesystem]' \ + '--force-write-index[write out the index even if is not flagged as changed]' \ + '--fsmonitor[enable or disable file system monitor]' \ + '--fsmonitor-valid[mark files as fsmonitor valid]' \ + '--no-fsmonitor-valid[clear fsmonitor valid bit]' \ $z_opt \ '*:: :_files' } @@ -4972,7 +4979,8 @@ _git-ls-files () { '--exclude-standard[skip files in standard Git exclusion lists]' \ '--error-unmatch[if any file does not appear in index, treat this as an error]' \ '(-s --stage -u --unmerged)--with-tree=[treat paths removed since given tree-ish as still present]: :__git_tree_ishs' \ - '-v[identify each files status (hmrck?)]' \ + '(-f)-v[indicate status of each file using lowercase for assume changed files]' \ + '(-v)-f[indicate status of each file using lowercase for fsmonitor clean files]' \ '--full-name[force paths to be output relative to the project top directory]' \ '--recurse-submodules[recurse through submodules]' \ '--abbrev=[set minimum SHA1 display-length]: :__git_guard_number length' \ @@ -5069,7 +5077,14 @@ _git-rev-list () { _arguments -C -S \ $revision_options \ - '(--pretty)--header[display contents of commit in raw-format]' \ + '--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)' \ + '(--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' \ + '(--pretty --quiet)--header[display contents of commit in raw-format]' \ '--timestamp[print raw commit timestamp]' \ '( --bisect-vars --bisect-all)--bisect[show only middlemost commit object]' \ '(--bisect)--bisect-vars[same as --bisect, displaying shell-evalable code]' \ @@ -5092,6 +5107,15 @@ _git-rev-list () { return ret } +(( $+functions[_git_rev-list_filters] )) || +_git_rev-list_filters() { + _values 'filter' \ + 'blob\:none[omit all blobs]' \ + 'blob\:limit[omit blobs larger than specified size]:size' \ + 'sparse\:oid[uses a sparse-checkout specification contained in the blob]:blob-ish' \ + 'sparse\:path[uses a sparse-checkout specification contained in path]:path:_directories' +} + (( $+functions[_git-show-index] )) || _git-show-index () { _message 'no arguments allowed; accepts index file on standard input' @@ -5812,16 +5836,24 @@ __git_extract_aliases () { __git_date_formats () { declare -a date_formats + if compset -P 'format:'; then + _strftime + return + fi + date_formats=( relative:'show dates relative to the current time' local:'show timestamps in local timezone' - iso:'show timestamps in ISO 8601 format' - rfc:'show timestamps in RFC 2822 format' + iso{,8601}:'show timestamps in ISO 8601 format' + iso-strict:'show timestamps in strict ISO 8601 format' + rfc{,2822}:'show timestamps in RFC 2822 format' short:'show only date but not time' raw:'show date in internal raw git format (%s %z)' - default:'show timestamp in the original timezone') + unix:'show date as a Unix epoch timestamp' + default:'show timestamp in the original timezone' + ) - _describe -t date-formats 'date format' date_formats $* + _describe -t date-formats 'date format' date_formats -- '( format\:custom\ format )' -S : } (( $+functions[__git_gpg_secret_keys] )) || @@ -6983,6 +7015,8 @@ __git_setup_log_options () { # TODO: Need to implement -<n> for limiting the number of commits to show. log_options=( '(- *)-h[display help]' + '--decorate-refs=[only decorate refs that match pattern]:pattern' + "--decorate-refs-exclude=[don't decorate refs that match pattern]:pattern" '( --no-decorate)--decorate=-[print out ref names of any commits that are shown]: :__git_log_decorate_formats' '(--decorate )--no-decorate[do not print out ref names of any commits that are shown]' '( --no-follow)--follow[follow renames]' @@ -7204,16 +7238,19 @@ __git_setup_revision_options () { '*--author=[limit commits to those by given author]:author' '*--committer=[limit commits to those by given committer]:committer' '*--grep=[limit commits to those with log messages matching the given pattern]:pattern' - '--all-match[limit commits to ones matching all --grep, --author, and --committer]' + '--all-match[limit commits to those matching all --grep, --author, and --committer]' + '--invert-grep[limit commits to those not matching --grep, --author and --committer]' '(-i --regexp-ignore-case)'{-i,--regexp-ignore-case}'[match regexps ignoring case]' - '(-E --extended-regexp)'{-E,--extended-regexp}'[use POSIX extended regexps]' - '(-F --fixed-strings)'{-F,--fixed-strings}'[do not interpret patterns as regexps]' + '!(-E --extended-regexp -F --fixed-strings -P --perl-regexp)--basic-regexp' + '(-E --extended-regexp -F --fixed-strings -P --perl-regexp)'{-E,--extended-regexp}'[use POSIX extended regexps]' + '(-E --extended-regexp -F --fixed-strings -P --perl-regexp)'{-F,--fixed-strings}"[don't interpret patterns as regexps]" + '(-E --extended-regexp -F --fixed-strings -P --perl-regexp)'{-P,--perl-regexp}'[use perl regular expression]' '--remove-empty[stop when given path disappears from tree]' - '--merges[display only merge commits]' - '--no-merges[do not display commits with more than one parent]' - '(--min-parents --no-min-parents)--min-parents=-[show only commits having at least <n> commits]: :__git_guard_number "minimum number of parents"' - '(--min-parents --no-min-parents)--no-min-parents[reset limit]' - '(--max-parents --no-max-parents)--max-parents=-[show only commits having at most <n> commits]: :__git_guard_number "maximum number of parents"' + '(--no-merges --min-parents)--merges[display only merge commits]' + "(--merges --max-parents)--no-merges[don't display commits with more than one parent]" + '(--min-parents --no-min-parents --merges)--min-parents=-[show only commits with at least specified number of commits]: :__git_guard_number "number of parents"' + '(--min-parents --no-min-parents --merges)--no-min-parents[reset limit]' + '(--max-parents --no-max-parents --no-merges)--max-parents=-[show only commits with at most specified number of commits]: :__git_guard_number "number of parents"' '(--max-parents --no-max-parents)--no-max-parents[reset limit]' '--first-parent[follow only first parent from merge commits]' '*--not[reverses meaning of ^ prefix for revisions that follow]' @@ -7242,18 +7279,20 @@ __git_setup_revision_options () { '(-g --walk-reflogs)--reverse[display commits in reverse order]' '( --objects-edge)--objects[display object ids of objects referenced by listed commits]' '(--objects )--objects-edge[display object ids of objects referenced by listed and excluded commits]' - '( --do-walk)--no-walk[only display given revs, do not traverse their ancestors]' + "( --do-walk)--no-walk=-[only display given revs, don't traverse their ancestors]::order:(sorted unsorted)" '(--no-walk )--do-walk[only display given revs, traversing their ancestors]' '( --cherry-pick)--cherry-mark[like --cherry-pick but mark equivalent commits instead of omitting them]' '(--cherry-pick )--cherry-pick[omit any commit that introduces the same change as another commit on "the other side" of a symmetric range]' '( --right-only)--left-only[list only commits on the left side of a symmetric range]' '(--left-only )--right-only[list only commits on the right side of a symmetric range]' - '(--left-only --right-only --cherry-pick --cherry-mark)--cherry[synonym for --right-only --cherry-mark --no-merges]' + '(--left-only --right-only --cherry-pick --cherry-mark --no-merges --merges --max-parents)--cherry[synonym for --right-only --cherry-mark --no-merges]' '(-c --cc )--full-diff[show full commit diffs when using log -p, not only those affecting the given path]' '--log-size[print log message size in bytes before the message]' '--use-mailmap[use mailmap file to map author and committer names and email]' '--reflog[show all commits from reflogs]' + '--single-worktree[examine the current working tree only]' + '--stdin[additionally read commits from standard input]' '--default[use argument as default revision]:default revision:__git_revisions' # TODO: --early-output is undocumented. '--early-output=-[undocumented]::undocumented' @@ -7278,6 +7317,7 @@ __git_setup_merge_options () { '(-n --no-stat)--stat[show a diffstat at the end of the merge]' '(--stat -n --no-stat)'{-n,--no-stat}'[do not show diffstat at the end of the merge]' '( --no-squash)--squash[merge, but do not commit]' + '--signoff[add Signed-off-by:]' '(--squash )--no-squash[merge and commit]' '--ff-only[refuse to merge unless HEAD is up to date or merge can be resolved as a fast-forward]' '(-S --gpg-sign --no-gpg-sign)'{-S-,--gpg-sign=-}'[GPG-sign the commit]::key id' diff --git a/Completion/Unix/Command/_gsettings b/Completion/Unix/Command/_gsettings index 890b56403..2724be0ea 100644 --- a/Completion/Unix/Command/_gsettings +++ b/Completion/Unix/Command/_gsettings @@ -3,7 +3,7 @@ local curcontext="$curcontext" state line expl ret=1 local subcmds -_arguments \ +_arguments -A "-*" \ '(- 1 *)--version[show version information]' \ '--schemadir[specify location of schemata]:directory:_directories' \ ':command:->subcmds' \ @@ -20,6 +20,9 @@ if [[ $state = subargs ]]; then _arguments ':schema:->schemata' ':key:->keys' ':value' ;; (list|reset)-(keys|recursively|children)) state=schemata ;; + list-schemas) + _arguments '--print-paths' + ;; *) _default && ret=0 ;; esac fi diff --git a/Completion/Unix/Command/_gzip b/Completion/Unix/Command/_gzip index f9fd17819..42d4ae705 100644 --- a/Completion/Unix/Command/_gzip +++ b/Completion/Unix/Command/_gzip @@ -13,7 +13,9 @@ unpigz|pigz) '(-b --blocksize)'{-b+,--blocksize}'[set compression block size]:size (KiB)' '(-p --processes)'{-p,--processes}'[specify number of processes to use]' '(-z --zlib)'{-z,--zlib}'[compress to zlib (.zz) format]' - '(-T --no-time)'{-T,--no-time}"[don't store/restore modification time in/from header]" + '(-m --no-time)'{-m,--no-time}"[don't store/restore modification time in/from header]" + '(-M --time)'{-M,--time}"[store/restore modification time in/from header]" + '(--synchronous)-Y[force output file write to permanent storage]' ) ;| pigz) @@ -23,7 +25,7 @@ pigz) '(--rsyncable)-R[make rsync-friendly archive]' "($excl)"{-F,--first}'[do iterations first, before block split]' "($excl)"{-I+,--iterations}'[specify number of iterations for optimization]:iterations [15]' - "($excl)"{-M+,--maxsplits}'[specify maximum number of split blocks]:split blocks [15]' + "($excl)"{-J+,--maxsplits}'[specify maximum number of split blocks]:split blocks [15]' "($excl)"{-O,--oneblock}"[don't split into smaller blocks]" ) ;| @@ -62,6 +64,7 @@ gzip|pigz) '(-R)--rsyncable[make rsync-friendly archive]' \ '(--suffix)-S+[specify suffix for compressed files]:suffix:' \ '(-S)--suffix=[specify suffix for compressed files]:suffix:' \ + '(-Y)--synchronous[force output file write to permanent storage]' \ '(--test)-t[test compressed file integrity]' \ '(-t)--test[test compressed file integrity]' \ '(--verbose)-v[verbose mode]' \ diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh index e5d51dd29..8a122a5b3 100644 --- a/Completion/Unix/Command/_ssh +++ b/Completion/Unix/Command/_ssh @@ -8,19 +8,16 @@ _ssh () { typeset -A opt_args common=( - '(-2)-1[forces ssh to try protocol version 1 only]' - '(-1)-2[forces ssh to try protocol version 2 only]' '(-6)-4[forces ssh to use IPv4 addresses only]' '(-4)-6[forces ssh to use IPv6 addresses only]' '-C[compress data]' - # for protocol version 2, this can be a comma-separated list - '-c+[select encryption cipher]:encryption cipher:(idea des 3des blowfish arcfour tss none)' + '-c+[select encryption cipher]:encryption cipher:->ciphers' '-F+[specify alternate config file]:config file:_files' '*-i+[select identity file]:SSH identity file:_files -g "*(-.^AR)"' '*-o+[specify extra options]:option string:->option' ) common_transfer=( - '-l+[limit used bandwidth]:bandwidth in Kbit/s:' + '-l+[limit used bandwidth]:bandwidth (Kbit/s)' '-P+[specify port on remote host]:port number on remote host' '-p[preserve modification times, access times and modes]' '-q[disable progress meter and warnings]' @@ -49,8 +46,8 @@ _ssh () { '*-L+[specify local port forwarding]:local port forwarding:->forward' \ '-l+[specify login name]:login name:_ssh_users' \ '-M[master mode for connection sharing]' \ - '(-1)-m+[specify mac algorithms]:mac spec:->macs' \ - '(-1)-N[do not execute a remote command (protocol version 2 only)]' \ + '-m+[specify mac algorithms]: :->macs' \ + "-N[don't execute a remote command]" \ '-n[redirect stdin from /dev/null]' \ '-O+[control an active connection multiplexing master process]:multiplex control command:((check\:"check master process is running" exit\:"request the master to exit" forward\:"request forward without command execution" stop\:"request the master to stop accepting further multiplexing requests" cancel\:"cancel existing forwardings with -L and/or -R" proxy))' \ '-P[use non privileged port]' \ @@ -59,8 +56,8 @@ _ssh () { '*-R+[specify remote port forwarding]:remote port forwarding:->forward' \ '-S+[specify location of control socket for connection sharing]:path to control socket:_files' \ '-Q+[query parameters]:parameter type:((cipher\:"supported symmetric ciphers" cipher-auth\:"supported symmetric ciphers that support authenticated encryption" mac\:"supported message integrity codes" kex\:"key exchange algorithms" key\:"key types" protocol-version\:"supported SSH protocol versions"))' \ - '(-1)-s[invoke subsystem]' \ - '(-1 -t)-T[disable pseudo-tty allocation (protocol version 2 only)]' \ + '-s[invoke subsystem]' \ + '(-t)-T[disable pseudo-tty allocation]' \ '(-T)-t[force pseudo-tty allocation]' \ '-V[show version number]' \ '(-q)*-v[verbose mode (multiple increase verbosity, up to 3)]' \ @@ -95,6 +92,7 @@ _ssh () { '-l[list all identities]' \ '-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]' \ '-X[unlock the agent]' \ '-x[lock the agent with a password]' \ '*:SSH identity file:_files' @@ -177,8 +175,14 @@ _ssh () { "($cmn)-s[$sdesc]:CA key:_files" \ "$p1($cmn -f -u)-I+[specify key identifier to include in certificate]:key id" \ "$p1($cmn -f -u)-h[generate host certificate instead of a user certificate]" \ + "$p1($cmn -f -u -D)-U[indicate that CA key is held by ssh-agent]" \ + "$p1($cmn -f -u -U)-D+[indicate the CA key is stored in a PKCS#11 token]:PKCS11 shared library:_files -g '*.(so|dylib)(|.<->)(-.)'" \ "$p1($cmn -f -u)-n+[specify user/host principal names to include in certificate]:principals" \ - "$p1($cmn -f -u)-O+[specify a certificate option]:option" \ + "$p1($cmn -f -u)*-O+[specify a certificate option]: : _values 'option' + clear critical\:name extension\:name force-command\:command\:_cmdstring + no-agent-forwarding no-port-forwarding no-pty no-user-rc no-x11-forwarding + permit-agent-forwarding permit-port-forwarding permit-pty permit-user-rc + permit-x11-forwarding source-address\:source\ address" \ "$p1($cmn -f -u)-V+[specify certificate validity interval]:interval" \ "($cmn -I -h -n -O -V)-k[generate a KRL file]" \ "$p1($cmn -I -h -n -O -V)-u[update a KRL]" @@ -217,7 +221,7 @@ _ssh () { ;; esac case "${IPREFIX#-o}" in - (#i)(afstokenpassing|batchmode|canonicalizefallbacklocal|challengeresponseauthentication|checkhostip|clearallforwardings|compression|enablesshkeysign|exitonforwardfailure|fallbacktorsh|forward(agent|x11)|forwardx11trusted|gatewayports|gssapiauthentication|gssapidelegatecredentials|gssapitrustdns|hashknownhosts|hostbasedauthentication|identitiesonly|kbdinteractiveauthentication|(tcp|)keepalive|nohostauthenticationforlocalhost|passwordauthentication|permitlocalcommand|proxyusefdpass|pubkeyauthentication|rhosts(|rsa)authentication|rsaauthentication|streamlocalbindunlink|usersh|kerberos(authentication|tgtpassing)|useprivilegedport|visualhostkey)=*) + (#i)(afstokenpassing|batchmode|canonicalizefallbacklocal|challengeresponseauthentication|checkhostip|clearallforwardings|compression|enablesshkeysign|exitonforwardfailure|fallbacktorsh|forward(agent|x11)|forwardx11trusted|gatewayports|gssapiauthentication|gssapidelegatecredentials|gssapikeyexchange|gssapirenewalforcesrekey|gssapitrustdns|hashknownhosts|hostbasedauthentication|identitiesonly|kbdinteractiveauthentication|(tcp|)keepalive|nohostauthenticationforlocalhost|passwordauthentication|permitlocalcommand|proxyusefdpass|pubkeyauthentication|rhosts(|rsa)authentication|rsaauthentication|streamlocalbindunlink|usersh|kerberos(authentication|tgtpassing)|useprivilegedport|visualhostkey)=*) _wanted values expl 'truth value' compadd yes no && ret=0 ;; (#i)addressfamily=*) @@ -239,32 +243,7 @@ _ssh () { _message -e 'CNAME rule list (source_domain_list:target_domain_list, each pattern list comma separated)' && ret=0 ;; (#i)ciphers=*) - _values -s , 'encryption cipher' \ - '3des-cbc' \ - 'aes128-cbc' \ - 'aes192-cbc' \ - 'aes256-cbc' \ - 'aes128-ctr' \ - 'aes192-ctr' \ - 'aes256-ctr' \ - 'arcfour128' \ - 'arcfour256' \ - 'arcfour' \ - 'blowfish-cbc' \ - 'cast128-cbc' \ - \ - 'rijndael128-cbc' \ - 'rijndael192-cbc' \ - 'rijndael256-cbc' \ - 'rijndael-cbc@lysator.liu.se' \ - && ret=0 - ;; - (#i)cipher=*) - _wanted values expl 'encryption cipher (protocol version 1)' \ - compadd blowfish 3des des idea arcfour tss none && ret=0 - ;; - (#i)compressionlevel=*) - _values 'compression level' {1..9} && ret=0 + state=ciphers ;; (#i)connectionattempts=*) _message -e 'connection attempts' && ret=0 @@ -304,21 +283,7 @@ _ssh () { _wanted hosts expl 'real host name to log into' _ssh_hosts && ret=0 ;; (#i)(hostbasedkeytypes|hostkeyalgorithms|pubkeyacceptedkeytypes)=*) - _values -s , 'key types' \ - 'ecdsa-sha2-nistp256-cert-v01@openssh.com' \ - 'ecdsa-sha2-nistp384-cert-v01@openssh.com' \ - 'ecdsa-sha2-nistp521-cert-v01@openssh.com' \ - 'ssh-ed25519-cert-v01@openssh.com' \ - 'ssh-rsa-cert-v01@openssh.com' \ - 'ssh-dss-cert-v01@openssh.com' \ - 'ssh-rsa-cert-v00@openssh.com' \ - 'ssh-dss-cert-v00@openssh.com' \ - 'ecdsa-sha2-nistp256' \ - 'ecdsa-sha2-nistp384' \ - 'ecdsa-sha2-nistp521' \ - 'ssh-ed25519' \ - 'ssh-rsa' \ - 'ssh-dss' && ret=0 + _wanted key-types expl 'key type' _sequence compadd - $(_call_program key-types ssh -Q key) && ret=0 ;; (#i)identityfile=*) _description files expl 'SSH identity file' @@ -350,12 +315,9 @@ _ssh () { _values -s , 'keyboard-interactive authentication methods' \ 'bsdauth' 'pam' 'skey' && ret=0 ;; - (#i)kexalgorithms=*) - _values -s , 'KEX algorithms' \ - ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 \ - diffie-hellman-group-exchange-sha256 \ - diffie-hellman-group-exchange-sha1 \ - diffie-hellman-group14-sha1 diffie-hellman-group1-sha1 && ret=0 + (#i)(kexalgorithms|gssapikexalgorithms)=*) + _wanted algorithms expl 'key exchange algorithm' _sequence compadd - \ + $(_call_program algorithms ssh -Q kex) && ret=0 ;; (#i)localcommand=*) _description commands expl 'run command locally after connecting' @@ -389,7 +351,7 @@ _ssh () { '1' \ '2' && ret=0 ;; - (#i)proxycommand=*) + (#i)(proxy|remote)command=*) _cmdstring && ret=0 ;; (#i)rekeylimit=*) @@ -421,7 +383,13 @@ _ssh () { (#i)streamlocalbindmask=*) _message -e 'octal mask' && ret=0 ;; - (#i)(stricthostkeychecking|verifyhostkeydns|updatehostkeys)=*) + (#i)stricthostkeychecking=*) + _wanted values expl 'value' compadd yes no ask accept-new off && ret=0 + ;; + (#i)syslogfacility=*) + _wanted facilities expl 'facility' compadd -M 'm:{a-z}={A-Z}' DAEMON USER AUTH LOCAL{0,1,2,3,4,5,6,7} && ret=0 + ;; + (#i)(verifyhostkeydns|updatehostkeys)=*) _wanted values expl 'truthish value' compadd yes no ask && ret=0 ;; (#i)transport=*) @@ -466,11 +434,9 @@ _ssh () { CertificateFile \ ChallengeResponseAuthentication \ CheckHostIP \ - Cipher \ Ciphers \ ClearAllForwardings \ Compression \ - CompressionLevel \ ConnectionAttempts \ ConnectTimeout \ ControlMaster \ @@ -488,10 +454,14 @@ _ssh () { GatewayPorts \ GlobalKnownHostsFile \ GSSAPIAuthentication \ + GSSAPIClientIdentity \ GSSAPIDelegateCredentials \ + GSSAPIKeyExchange \ + GSSAPIRenewalForcesRekey \ + GSSAPIServerIdentity \ GSSAPITrustDns \ + GSSAPIKexAlgorithms \ HashKnownHosts \ - Host \ HostbasedAuthentication \ HostbasedKeyTypes \ HostKeyAlgorithms \ @@ -516,13 +486,13 @@ _ssh () { PKCS11Provider \ Port \ PreferredAuthentications \ - Protocol \ ProxyCommand \ ProxyJump \ ProxyUseFdpass \ PubkeyAcceptedKeyTypes \ PubkeyAuthentication \ RekeyLimit \ + RemoteCommand \ RemoteForward \ RequestTTY \ RevokedHostKeys \ @@ -534,8 +504,8 @@ _ssh () { StreamLocalBindMask \ StreamLocalBindUnlink \ StrictHostKeyChecking \ + SyslogFacility \ TCPKeepAlive \ - Transport \ Tunnel \ TunnelDevice \ UpdateHostKeys \ @@ -608,11 +578,18 @@ _ssh () { return ret ;; macs) - _values -s , 'MAC algorithms' hmac-md5 hmac-sha1 umac-64@openssh.com \ - hmac-ripemd160 hmac-sha1-96 hmac-md5-96 hmac-sha2-256 \ - hmac-sha2-256-96 hmac-sha2-512 hmac-sha2-512-96 && ret=0 + _wanted macs expl 'MAC algorithm' _sequence compadd - $(_call_program macs ssh -Q mac) + return + ;; + ciphers) + _wanted ciphers expl 'encryption cipher' _sequence compadd - $(_call_program ciphers ssh -Q cipher) + return ;; command) + if (( $+opt_args[-s] )); then + _wanted subsystems expl subsystem compadd sftp + return + fi local -a _comp_priv_prefix shift 1 words (( CURRENT-- )) diff --git a/Completion/Unix/Command/_sudo b/Completion/Unix/Command/_sudo index ec293d469..10fa2e82e 100644 --- a/Completion/Unix/Command/_sudo +++ b/Completion/Unix/Command/_sudo @@ -47,7 +47,8 @@ else '(-s --shell)'{-s,--shell}'[run shell as the target user; a command may also be specified]' \ '(-i --login)'{-i,--login}'[run login shell as the target user; a command may also be specified]' \ '(-b --background -i --login -s --shell -e --edit)'{-b,--background}'[run command in the background]' \ - '(-E --preserve-env -i --login -s --shell -e --edit)'{-E,--preserve-env}'[preserve user environment when running command]' \ + '(--preserve-env -i --login -s --shell -e --edit)-E[preserve user environment when running command]' \ + '(-E -i --login -s --shell -e --edit)--preserve-env=-[preserve user environment when running command]::environment variable:_sequence _parameters -g "*export*"' \ '(-H --set-home -i --login -s --shell -e --edit)'{-H,--set-home}"[set HOME variable to target user's home dir]" \ '(-P --preserve-groups -i -login -s --shell -e --edit)'{-P,--preserve-groups}"[preserve group vector instead of setting to target's]" \ '(-)1:command: _command_names -e' diff --git a/Completion/Unix/Command/_tidy b/Completion/Unix/Command/_tidy index a4dccd5f5..3998ccdb3 100644 --- a/Completion/Unix/Command/_tidy +++ b/Completion/Unix/Command/_tidy @@ -6,8 +6,8 @@ opts=( ${${${(s.</option>.)"$(_call_program options $words[1] -xml-config)"}##*< opts=( ${opts/;Integer*/:number} ) opts=( ${opts/;Boolean*/:boolean:(yes no)} ) opts=( ${opts/;AutoBool*/:value:(auto yes no)} ) -opts=( ${opts/;(String|Tag)*/:value} ) -opts=( ${opts/(#b);(enum|Encoding|DocType)*<default>(*)<*<example>([^<]#)<*/:value [${match[2]%% *}]:(${(j. .)${(@s., .)match[3]}%% *})} ) +opts=( ${opts/;(String|Tag|Attributes)*/:value} ) +opts=( ${opts/(#bi);(enum|Encoding|DocType)*<default>(*)<*<example>([^<]#)<*/:value [${match[2]%% *}]:(${(j. .)${(@s., .)match[3]}%% *})} ) opts=( ${(M)opts:#*:*} ) _arguments -s -A "-*" --$^opts \ @@ -33,7 +33,10 @@ _arguments -s -A "-*" --$^opts \ '(- *)'{-version,-v}'[show the version of Tidy]' \ '(- *)'{-help,-h,-\?}'[list the command line options]' \ '(- *)-help-config[list all configuration options]' \ + '(- *)-help-env[show details of environment and runtime configuration]' \ '(- *)-show-config[list the current configuration settings]' \ + '(- *)-export-config[list the current settings in config file form]' \ + '(- *)-export-default-config[list the default settings in config file form]' \ "(*)-help-option[show a description of specified configuration option]:config option:(${(@j. .)opts%%:*})" \ '(-lang -language)'{-lang,-language}'[set the two-letter language code]:language:_locales' \ '-xml-help[list the command line options in XML format]' \ @@ -41,6 +44,7 @@ _arguments -s -A "-*" --$^opts \ "-xml-strings[output all of Tidy's strings in XML format]" \ '-xml-error-strings[output error constants and strings in XML format]' \ '-xml-options-strings[output option descriptions in XML format]' \ + '-options[specify file containing configuration settings]:config file:_files' \ '*:file:_files' \ + '(encoding)' \ '-ascii[use US-ASCII for output, ISO-8859-1 for input]' \ diff --git a/Completion/Unix/Command/_tmux b/Completion/Unix/Command/_tmux index b0aa75ba1..730959e84 100644 --- a/Completion/Unix/Command/_tmux +++ b/Completion/Unix/Command/_tmux @@ -180,7 +180,7 @@ _tmux-bind-key() { '-r[the key may repeat]' \ '-T+[specify key table for the binding]:key table' \ '1:key' \ - '*:::template:_tmux' + '*:::template:= _tmux' } _tmux-break-pane() { @@ -211,49 +211,38 @@ _tmux-capture-pane() { } _tmux-choose-buffer() { - [[ -n ${tmux_describe} ]] && print "put a window into buffer choice mode" && return + [[ -n ${tmux_describe} ]] && print "put a pane into buffer choice mode" && return _arguments -s \ - '-F+[specify output format]:format:__tmux-format' \ + '-N[start without the preview]' \ + '-F+[specify format for each list item]:format:__tmux-formats' \ + '-f+[filter items]:filter format:__tmux-formats' \ + '-O+[initial sort order]:order:(time name size)' \ '-t+[specify target window]:session:__tmux-windows' \ - '*:::template:_tmux' + '*:::template:= _tmux' } _tmux-choose-client() { [[ -n ${tmux_describe} ]] && print "put a window into client choice mode" && return _arguments -s \ - '-F+[specify output format]:format:__tmux-format' \ + '-N[start without the preview]' \ + '-F+[specify format for each list item]:format:__tmux-formats' \ + '-f+[filter items]:filter format:__tmux-formats' \ + '-O+[initial sort order]:order:(time name size)' \ '-t+[specify target window]:session:__tmux-windows' \ - '*:::template:_tmux' -} - -_tmux-choose-session() { - [[ -n ${tmux_describe} ]] && print "put a window into session choice mode" && return - _arguments -s \ - '-F+[specify output format]:format:__tmux-format' \ - '-t+[specify target window]:session:__tmux-windows' \ - '*:::template:_tmux' + '*:::template:= _tmux' } _tmux-choose-tree() { [[ -n ${tmux_describe} ]] && print "put a window into tree choice mode" && return _arguments -s \ - '-b+[override default session command]:session-command' \ - '-c+[override default window command]:window-command' \ - '-S+[specify session format]:session-format:__tmux-formats' \ + '-N[start without the preview]' \ + '-F+[specify format for each list item]:format:__tmux-formats' \ + '-f+[filter items]:filter format:__tmux-formats' \ + '-O+[initial sort order]:order:(time name size)' \ '-s[choose among sessions]' \ '-t+[specify target window]:session:__tmux-windows' \ - '-u[show generated tree uncollapsed at startup]' \ - '-W+[specify window format]:window-format:__tmux-formats' \ '-w[choose among windows]' \ - '*:::template:_tmux' -} - -_tmux-choose-window() { - [[ -n ${tmux_describe} ]] && print "put a window into window choice mode" && return - _arguments -s \ - '-F+[specify output format]:format:__tmux-formats' \ - '-t+[specify target window]:session:__tmux-windows' \ - '*:::template:_tmux' + '*:::template:= _tmux' } _tmux-clear-history() { @@ -275,7 +264,7 @@ _tmux-command-prompt() { '-I+[specify list of initial inputs]:initial-text (comma-separated list)' \ '-p+[specify list of prompts]:prompts (comma-separated list)' \ '-t+[specify target client]:client:__tmux-clients' \ - '*:::template:_tmux' + '*:::template:= _tmux' } _tmux-confirm-before() { @@ -283,7 +272,7 @@ _tmux-confirm-before() { _arguments -s \ '-p+[specify prompt]:prompt string' \ '-t+[specify target client]:client:__tmux-clients' \ - '*:::command:_tmux' + '*:::command:= _tmux' } _tmux-copy-mode() { @@ -321,14 +310,16 @@ _tmux-display-message() { _tmux-display-panes() { [[ -n ${tmux_describe} ]] && print "display an indicator for each visible pane" && return - _arguments '-t+[specify target client]:client:__tmux-clients' + _arguments -S \ + '-d+[time to show indicator for]:duration (ms)' \ + '-t+[specify target client]:client:__tmux-clients' \ + '*:::command:= _tmux' } _tmux-find-window() { [[ -n ${tmux_describe} ]] && print "search for a pattern in windows" && return _arguments -s \ '-C[match visible contents]' \ - '-F+[specify output format]:format:__tmux-formats' \ '-N[match window name]' \ '-T[match window title]' \ '-t+[specify target window]:window:__tmux-windows' \ @@ -628,6 +619,7 @@ _tmux-resize-pane() { _tmux-respawn-pane() { [[ -n ${tmux_describe} ]] && print "reuse a pane in which a command has exited" && return _arguments -s -A "-*" -S \ + '-c+[specify a new working directory for the pane]:directory:_directories' \ '-k[kill window if it is in use]' \ '-t+[specify target pane]:pane:__tmux-pane' \ ':command:_cmdambivalent' @@ -636,6 +628,7 @@ _tmux-respawn-pane() { _tmux-respawn-window() { [[ -n ${tmux_describe} ]] && print "reuse a window in which a command has exited" && return _arguments -s -A "-*" -S \ + '-c+[specify a new working directory for the window]:directory:_directories' \ '-k[kill window if it is in use]' \ '-t+[specify target window]:window:__tmux-windows' \ ':command:_cmdambivalent' @@ -688,6 +681,7 @@ _tmux-select-pane() { '-R[move to the pane right of target]' \ '-U[move to the pane above target]' \ '-P+[set pane style]:style:__tmux-style' \ + '-T+[set the pane title]:title' \ '-t+[specify target pane]:pane:__tmux-panes' } @@ -772,6 +766,7 @@ _tmux-set-option() { typeset -A opt_args _arguments -C -s : \ '-a[append to string options]' \ + '-F[expand formats in the option value]' \ '-g[set a global session option]' \ '-o[prevent setting of an option that is already set]' \ '-q[suppress errors about unknown or ambiguous options]' \ @@ -796,6 +791,7 @@ _tmux-set-window-option() { typeset -A opt_args _arguments -C -s : \ '-a[append to string options]' \ + '-F[expand formats in the option value]' \ '-g[set a global window option]' \ '-o[prevent setting of an option that is already set]' \ '-q[suppress errors about unknown or ambiguous options]' \ @@ -811,8 +807,9 @@ _tmux-set-hook() { _arguments -s \ '-g[add hook to global list]' \ '-u[unset a hook]' \ - '-t+[specify target session]:session:__tmux-sessions' - ':command' + '-t+[specify target session]:session:__tmux-sessions' \ + ':hook name:_tmux_hooks' \ + '*:::command:= _tmux' } _tmux-show-hooks() { @@ -820,7 +817,6 @@ _tmux-show-hooks() { _arguments -s -S -A "-*" \ '-g[show global list of hooks]' \ '-t+[specify target session]:session:__tmux-sessions' \ - ':hook name:(alert-activity alert-bell alert-silence client-attached client-detached client-resized pane-died pane-exited)' \ } _tmux-show-buffer() { @@ -1105,6 +1101,12 @@ function __tmux-colours() { fi } +_tmux_hooks() { + _alternative \ + 'hooks:hook name:(alert-activity alert-bell alert-silence client-attached client-detached client-resized client-session-changed pane-died pane-exited pane-set-clipboard session-created session-closed session-renamed window-linked window-renamed window-unlinked)' \ + 'post-hooks:command post-hook:compadd - after-${_tmux_aliasmap}' +} + function __tmux-get-optarg() { local opt="$1" local -i i diff --git a/Completion/Unix/Command/_truss b/Completion/Unix/Command/_truss index d56839e02..b798f03cb 100644 --- a/Completion/Unix/Command/_truss +++ b/Completion/Unix/Command/_truss @@ -43,6 +43,9 @@ case $OSTYPE in "(-c)-S[don't report signals received by the process]" '(*)-p[trace specified existing processes]:pid:_pids' ) + ;| + freebsd<10->.*) + args+=( '-H[include thread ID in the output of each event]' ) ;; esac diff --git a/Completion/Unix/Command/_wget b/Completion/Unix/Command/_wget index 2a7390fba..1a7e2d0a3 100644 --- a/Completion/Unix/Command/_wget +++ b/Completion/Unix/Command/_wget @@ -71,6 +71,7 @@ _arguments -C -s \ '(--adjust-extension -E)'{--adjust-extension,-E}'[save all HTML/CSS documents with proper extensions]' \ "--ignore-length[ignore \`Content-Length' header field]" \ '*--header=[send a custom HTTP header]:header:->header' \ + '--compression=:compression:(auto gzip none)' \ '--max-redirect=:number' \ '--proxy-user=:user' \ '--proxy-password=:password' \ @@ -90,7 +91,7 @@ _arguments -C -s \ '--content-disposition[honor the Content-Disposition header when choosing local file names]' \ '--content-on-error[output received content on server errors]' \ "--auth-no-challenge[send basic HTTP authentication without first waiting for server's challenge]" \ - '--secure-protocol=[choose secure protocol]:protocol:(SSLv2 SSLv3 TLSv1)' \ + '--secure-protocol=[choose secure protocol]:protocol:(SSLv2 SSLv3 TLSv1 TLSv1_1 TLSv1_2 PFS)' \ --https-only \ "--no-check-certificate=[don't check the server certificate]" \ '--certificate=[specify client certificate]:client certificate file:_files' \ @@ -142,6 +143,7 @@ _arguments -C -s \ '(-np --no-parent)'{-np,--no-parent}"[don't ascend to parent directory]" \ '--no-verbose' \ '--no-clobber' \ + '--no-netrc' \ '--no-use-server-timestamps[do not set timestamp to server provided value]' \ '--htmlify=:htmlify:' \ '--no:no:->noflags' \ |