1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-01 09:41:44 +02:00

42317: completion option updates for commands that have had recent updates

This commit is contained in:
Oliver Kiddle 2018-01-23 11:01:55 +01:00
parent aabf978fce
commit 47430bcd7c
14 changed files with 225 additions and 156 deletions

View file

@ -1,5 +1,14 @@
2018-01-23 Oliver Kiddle <okiddle@yahoo.co.uk>
* 42317: Completion/Linux/Command/_cryptsetup,
Completion/Linux/Command/_ethtool, Completion/Unix/Command/_wget,
Completion/Linux/Command/_tune2fs, Completion/Unix/Command/_cowsay,
Completion/Unix/Command/_git, Completion/Unix/Command/_gsettings,
Completion/Unix/Command/_gzip, Completion/Unix/Command/_ssh,
Completion/Unix/Command/_sudo, Completion/Unix/Command/_tidy,
Completion/Unix/Command/_tmux, Completion/Unix/Command/_truss:
option updates for commands that have had recent updates
* 42299: Completion/Zsh/Command/_typeset: correct optional argument
* Matthew Martin: 42309: Completion/Unix/Command/_dhclient,

View file

@ -25,6 +25,7 @@ _arguments -s \
'(-i --iter-time)'{-i+,--iter-time=}'[set password processing duration]:duration (milliseconds)' \
'(-q --batch-mode)'{-q,--batch-mode}"[don't ask for confirmation]" \
'(-t --timeout)'{-t+,--timeout=}'[set password prompt timeout]:timeout (seconds)' \
'--progress-frequency=[specify progress line update interval]:interval (seconds)' \
'(-T --tries)'{-T+,--tries=}'[set maximum number of retries]:number of retries' \
'--align-payload=[set payload alignment]:sectors' \
'--header-backup-file=[specify file with LUKS header and keyslots backup]:file:_files' \
@ -39,10 +40,30 @@ _arguments -s \
'--tcrypt-system[device is system TCRYPT drive (with bootloader)]' \
'--tcrypt-backup[use backup (secondary) TCRYPT header]' \
'--veracrypt[scan also for VeraCrypt compatible device]' \
'--veracrypt-pim=[specify personal iteration multiplier for VeraCrypt compatible device]:multiplier' \
'--veracrypt-query-pim[query personal iteration multiplier for VeraCrypt compatible device]' \
'(-M --type)'{-M+,--type=}'[specify type of device metadata]:type:(luks plain loopaes tcrypt)' \
'--force-password[disable password quality check (if enabled)]' \
'--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]' \
'--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' \
'--pbkdf-force-iterations=[specify PBKDF iterations cost]:cost' \
'--priority=[specify keyslot priority]:priority:(ignore normal prefer)' \
'--disable-locks[disable locking of on-disk metadata]' \
'--disable-keyring[disable loading volume keys via kernel keyring]' \
'(-I --integrity)'{-I+,--integrity=}'[specify data integrity algorithm (LUKS2 only)]:algorithm' \
'--integrity-no-journal[disable journal for integrity device]' \
"--integrity-no-wipe[don't wipe device after format]" \
"--token-only[don't ask for passphrase if activation by token fails]" \
'--token-id=[specify token number]:number [any]' \
'--key-description=[specify key description]:description' \
'--sector-size=[specify encryption sector size]:size [512 bytes]' \
'--persistent[set activation flags persistent for device]' \
'--label=[set label for the LUKS2 device]:label' \
'--subsystem=[set subsystem label for the LUKS2 device]:subsystem' \
'(- : *)--version[show version information]' \
'(- : *)'{-\?,--help}'[display help information]' \
'(- : *)--usage[display brief usage]' \
@ -59,6 +80,8 @@ case $state in
'benchmark:benchmark cipher'
'repair:try to repair on-disk metadata'
'erase:erase all keyslots'
'convert:convert LUKS from/to LUKS2 format'
'config:set permanent configuration options for LUKS2'
'luksFormat:initialize a LUKS partition'
'luksAddKey:add a new key'
'luksRemoveKey:remove a key'
@ -86,7 +109,7 @@ case $state in
benchmark) args=( '--cipher=:cipher' );;
luksKillSlot) args=( $device ':key slot number' );;
remove|status|resize|*lose|luksSuspend|luksResume) args=( $mapping );;
erase|repair|(luks(AddKey|Erase|RemoveKey|DelKey|UUID|Dump)|isLuks))
erase|convert|config|repair|(luks(AddKey|Erase|RemoveKey|DelKey|UUID|Dump)|isLuks))
args=( $device )
;;
luks(Format|AddKey|RemoveKey|ChangeKey))

View file

@ -64,7 +64,7 @@ if [[ -n $state ]]; then
rx-usecs|rx-frames|rx-usecs-irq|rx-frames-irq|tx-usecs|tx-frames) ;&
tx-usecs-irq|tx-frames-irq|stats-block-usecs|pkt-rate-low|rx-usecs-low) ;&
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|rx-mini) ;&
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) ;&
other|combined|tx-timer|count)
@ -143,7 +143,7 @@ if [[ -n $state ]]; then
-C|--coalesce)
_wanted settings expl 'coalescing setting' compadd -F line -M 'r:|-=* r:|=*' - \
adaptive-{r,t}x {r,t}x-{usecs,frames}{,-irq,-high,-low} \
stats-block-usecs pkt-rate-{low,high} sample-interval
stats-block-usecs pkt-rate-{low,high} sample-interval dmac
;;
-G|--set-ring)
_values -S ' ' -w 'ring parameter' \

View file

@ -25,7 +25,6 @@ _arguments -s -S \
'-M+[set the last-mounted directory for the filesystem]:directory:_files -/' \
'-o+[mount options]:options:_values -s , debug bsdgroups user_xattr acl uid16 journal_data journal_data_ordered journal_data_writeback nobarrier block_validity discard nodelalloc' \
'-O+[set or clear filesystem features]: :_values -s , feature dir_index dir_nlink encrypt extentextent extra_isize filetype flex_bg has_journalhuge_file large_file metadata_csum mmp project quota read-only resize_inode sparse_super uninit_bg' \
'-p+[set MMP check interval]:interval (seconds) [5]' \
'-r+[set the number of reserved filesystem blocks]:number' \
'-Q+[set quota feature on the superblock]: :_values -s , "quota option" usrquota grpquota prjquota' \
'-s+[set sparse super feature]:state:((0\:off 1\:on))' \

View file

@ -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

View file

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

View file

@ -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

View file

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

View file

@ -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-- ))

View file

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

View file

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

View file

@ -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

View file

@ -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

View file

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