about summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2017-09-18 15:53:29 +0200
committerOliver Kiddle <opk@zsh.org>2017-09-18 15:53:29 +0200
commitb138acf42e52dcdf470f5001aa7ffa1e70eb60f3 (patch)
tree8b8b52c41e0c86c1b7e2b7497bf354aaec518f5d /Completion/Unix
parentb0c12e377151adced916e517e9354e9e4469a637 (diff)
downloadzsh-b138acf42e52dcdf470f5001aa7ffa1e70eb60f3.tar.gz
zsh-b138acf42e52dcdf470f5001aa7ffa1e70eb60f3.tar.xz
zsh-b138acf42e52dcdf470f5001aa7ffa1e70eb60f3.zip
41725: assorted minor updates to completion functions
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_dhclient1
-rw-r--r--Completion/Unix/Command/_env3
-rw-r--r--Completion/Unix/Command/_getfacl22
-rw-r--r--Completion/Unix/Command/_gpg54
-rw-r--r--Completion/Unix/Command/_ls1
-rw-r--r--Completion/Unix/Command/_screen12
-rw-r--r--Completion/Unix/Command/_setfacl4
-rw-r--r--Completion/Unix/Command/_strip1
-rw-r--r--Completion/Unix/Command/_truss3
-rw-r--r--Completion/Unix/Command/_vim4
-rw-r--r--Completion/Unix/Command/_wget29
11 files changed, 84 insertions, 50 deletions
diff --git a/Completion/Unix/Command/_dhclient b/Completion/Unix/Command/_dhclient
index 10cb551e0..a9f06d81f 100644
--- a/Completion/Unix/Command/_dhclient
+++ b/Completion/Unix/Command/_dhclient
@@ -60,6 +60,7 @@ case $OSTYPE in
       '-V[specify vendor-class-identifier option]:option'
       '--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)'
     )
   ;;
 esac
diff --git a/Completion/Unix/Command/_env b/Completion/Unix/Command/_env
index 9b2a1e011..214c61e54 100644
--- a/Completion/Unix/Command/_env
+++ b/Completion/Unix/Command/_env
@@ -7,7 +7,8 @@ case $variant in
   gnu)
     args=(
       '(-)'{-i,--ignore-environment}'[start with empty environment]'
-      '(--ignore-environment -i --help --version)*'{-u,--unset=}'[remove variable from the environment]:env var to remove:_parameters -g "*export*"'
+      '(--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'
       '(- *)--help[display help information]'
       '(- *)--version[display version information]'
     )
diff --git a/Completion/Unix/Command/_getfacl b/Completion/Unix/Command/_getfacl
index b6f1d0932..15be06a1c 100644
--- a/Completion/Unix/Command/_getfacl
+++ b/Completion/Unix/Command/_getfacl
@@ -11,19 +11,19 @@ _arguments -s -S \
   '*: :_files'
 else
 _arguments -s -S \
-  '--access[display the file access control list only]' \
+  '(-a --access)'{-a,--access}'[display the file access control list only]' \
   '(-d --default)'{-d,--default}'[display the default access control list only]' \
-  '--omit-header[do not display the comment header]' \
-  '--all-effective[print all effective rights]' \
-  '--no-effective[print no effective rights]' \
-  '--skip-base[skip files that only have the base entries]' \
+  '(-c --omit-header)'{-c,--omit-header}"[don't display the comment header]" \
+  '(-e --all-effective)'{-e,--all-effective}'[print all effective rights]' \
+  '(-E --no-effective)'{-E,--no-effective}'[print no effective rights]' \
+  '(-s --skip-base)'{-s,--skip-base}'[skip files that only have the base entries]' \
   '(-R --recursive)'{-R,--recursive}'[recurse into subdirectories]' \
   '(-L --logical)'{-L,--logical}'[logical walk, follow symbolic links]' \
-  '(-P --physical)'{-P,--physical}'[physical walk, do not follow symbolic links]' \
-  '--tabular[use tabular output format]' \
-  '--numeric[print numeric user/group identifiers]' \
-  '--absolute-names[don'"'"'t strip leading '"'"'/'"'"' in pathnames]' \
-  '--version[print version and exit]' \
-  '--help[this help text]' \
+  '(-P --physical)'{-P,--physical}"[physical walk, don't follow symbolic links]" \
+  '(-t --tabular)'{-t,--tabular}'[use tabular output format]' \
+  '(-n --numeric)'{-n,--numeric}'[print numeric user/group identifiers]' \
+  '(-p --absolute-names)'{-p,--absolute-names}"[don't strip leading '/' in pathnames]" \
+  '(- *)'{-v,--version}'[display version information]' \
+  '(- *)'{-h,--help}'[display help information]' \
   '*: :_files'
 fi
diff --git a/Completion/Unix/Command/_gpg b/Completion/Unix/Command/_gpg
index d7a8ece4c..239a032a1 100644
--- a/Completion/Unix/Command/_gpg
+++ b/Completion/Unix/Command/_gpg
@@ -38,17 +38,17 @@ fi
 [[ $service = gpg ]] && args+=(
   '--decrypt-files[decrypt multiple files]'
   '(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]'
-  '--clearsign[make a clear text signature]'
+  --clear{,-}sign'[make a clear text signature]'
   '--store[store only]'
   '--verify[verify a signature]'
   '--verify-files[verify a list of files]'
   '(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]'
-  '--list-keys[list all keys]'
+  '(-k --list-keys)'{-k,--list-keys}'[list all keys]'
   '--list-public-keys[list all public keys]'
-  '--list-secret-keys[list all secret keys]'
-  '--list-sigs[lists keys and signatures]:key attachment:->public-keys'
-  '--list-options[modify what the various --list-* commands show]'
-  '--check-sigs[list key, signatures and check them]:key attachment:->public-keys'
+  '(-K --list-secret-keys)'{-K,--list-secret-keys}'[list all secret keys]'
+  --list-sig{,nature}s'[lists keys and signatures]:key attachment:->public-keys'
+  '--list-options[modify what the various --list-* commands show]: :->option-list'
+  --check-sig{,nature}s'[list key, signatures and check them]:key attachment:->public-keys'
   '--fingerprint[list all keys with their fingerprints]:key attachment:->public-keys'
   '--list-packets[list only the sequence of packets]'
   '--gen-key[generate a new pair key]'
@@ -60,6 +60,7 @@ fi
   '--delete-secret-and-public-keys:key attachment:->secret-keys'
   '--gen-revoke[generate a revocation certificate]'
   '--desig-revoke[generate a designated revocation certificate]'
+  '--passwd[change a passphrase]'
   '--export[export all keys from all keyrings]'
   '--send-keys[send keys to a keyserver]:key attachment:->public-keyids'
   '--export-secret-keys:key attachment:->secret-keys'
@@ -67,7 +68,7 @@ fi
   '--import[import a gpg key from a file]:attachment (file):_files'
   '--fast-import[import a file without adding to trustdb]:attachment (file):_files'
   '--fetch-keys[fetch key at URIs]:uri:'
-  '--recv-keys[receive a list of keys from a keyserver]:key attachment:->public-keyids'
+  --rec{eive,v}-keys'[receive a list of keys from a keyserver]:key attachment:->public-keyids'
   '--refresh-keys[update all keys from a keyserver]'
   '--search-keys[search for keys on a key server]'
   '--update-trustdb[update the trust database]'
@@ -79,7 +80,11 @@ fi
   '--enarmor[en-Armor a file or stdin]'
   '--print-md[print message digests]:algorithm:->ciphers::file:_files'
   '--print-mds[print message digests]::file:_files'
-  '--gen-random:count' '--gen-prime'
+  '--tofu-policy:policy:(good unknown bad ask auto):*:keys:->public-keys'
+  '--tofu-default-policy:policy:(good unknown bad ask auto)'
+  '--quick-generate-key:user-id: :algorithm:(default future-default rsa dsa elg ed25519 cv25519): : _values -s , usage - default sign auth encr::expiration'
+  '--quick-add-key:fingerprint: :algorithm:(default future-default rsa dsa elg ed25519 cv25519): : _values -s , usage - default sign auth encr::expiration'
+  '--gen-random:quality level:(0 1 2):count (bytes)' '--gen-prime'
   '--warranty[print warranty info]'
   '(-a --armor)'{-a,--armor}'[create ASCII armored output]'
   '--default-key[specify default user ID for signatures]:key:->secret-keys'
@@ -126,11 +131,11 @@ fi
   '--s2k-mode:value'
   '--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))'
   '--personal-'{cipher,digest,compress}'-preferences:string'
-  '--card-edit[present smartcard menu]' '--card-status[show smartcard content]'
+  --{card-edit,edit-card}'[present smartcard menu]' '--card-status[show smartcard content]'
   '--change-pin[present menu to change smartcard pin]'
   '--list-config[display internal configuration parameters]'
   '--hidden-recipient[hidden recipient]:recipient:->public-keys'
-  '--dump-options[show all options]' '--default-preference-list:string'
+  '--default-preference-list:string'
   '--fetch-keys:URIs'
   '--hidden-encrypt-to:recipient:->public-keys'
   '--compress-level:integer'
@@ -139,17 +144,14 @@ fi
   '--max-output[maximum output generated when processing file]:bytes:'
   '--gpg-agent-info[override GPG_AGENT_INFO]:'
   '--primary-keyring:file:_files'
-  '--verify-options:parameters:_multi_parts -q -S, ","
-    "(show-photos show-policy-urls show-notations show-std-notations
-    show-user-notations show-keyserver-urls show-uid-validity show-unusable-uids
-    show-primary-uid-only pka-lookups pka-trust-increase)"'
+  '--verify-options: :->verify-options'
   '--debug:flags:' '--status-file:file:_files'
   '--attribute-file:file:_files' '--load-extension:file:_files'
   '--s2k-count:integer'
   '--sig-notation:name=value:' '--cert-notation:name=value:'
   '--passphrase-file:file:_files' '--passphrase-repeat:integer:'
   '--command-file:file:_files' '--trustdb-name:file:_files'
-  '--trust-model:trust model:((pgp classic direct always auto))'
+  '--trust-model:trust model:(pgp classic tofu tofu+pgp direct always auto)'
   '--sig-policy-url:string:' '--cert-policy-url:string:'
   '--sig-keyserver-url:string:' '--comment[comment]:comment:'
   '--no-comments[disable comments]'
@@ -163,8 +165,8 @@ fi
   '--multifile[process multiple files]'
   '--keyid-format[key id format]:key format:((short 0xshort long 0xlong))'
   '--exit-on-status-write-error[exit immediately on error write]'
-  '--limit-card-insert-tries:integer:'
-  '--reader-port[card reader port]:port:'
+  '--limit-card-insert-tries:integer'
+  '--reader-port[card reader port]:port'
   '--ctapi-driver[file to use to access smartcard reader]:file:_files'
   '--pcsc-driver[file to use to access smartcard reader]:file:_files'
   '--auto-key-locate:parameters'
@@ -176,7 +178,7 @@ extra=( ${allopts:|extra} )
 _arguments -C -s -S -A "-*" $args $extra '*:args:->args' && ret=0
 
 if [[ $state = args ]]; then
-  if (( ${+opt_args[--export]} || ${+opt_args[--list-keys]} || ${+opt_args[--list-public-keys]} )); then
+  if (( ${+opt_args[--export]} || ${+opt_args[-k]} || ${+opt_args[--list-keys]} || ${+opt_args[--list-public-keys]} )); then
     state=public-keys
   elif (( ${+opt_args[--list-secret-keys]} )); then
     state=secret-keys
@@ -205,19 +207,27 @@ fi
 case "$state" in
   public-keys)
     _wanted public-keys expl 'public key' \
-	compadd ${${(Mo)$(_call_program public-keys gpg $needed --list-public-keys --list-options no-show-photos 2>/dev/null):%<*>}//(<|>)/} && return
+	compadd ${${(Mo)$(_call_program public-keys $words[1] $needed --list-public-keys --list-options no-show-photos):%<*>}//(<|>)/} && return
   ;;
   secret-keys)
     _wanted secret-keys expl 'secret key' compadd \
-	${${(Mo)$(_call_program secret-keys gpg $needed --list-secret-keys --list-options no-show-photos 2>/dev/null):%<*>}//(<|>)/} && return
+	${${(Mo)$(_call_program secret-keys $words[1] $needed --list-secret-keys --list-options no-show-photos):%<*>}//(<|>)/} && return
   ;;
   ciphers)
     _wanted ciphers expl cipher compadd \
-        ${${(s.,.)${(M)${(f)"$(_call_program ciphers gpg $needed --version)"}:#Cipher*}#*:}# } && return
+        ${${(s.,.)${(M)${(f)${"$(_call_program ciphers $words[1] $needed --version)"}//,$'\n' #/, }:#Cipher*}#*:}# } && return
   ;;
   (public-keyids)
     _wanted public-keys expl 'public keyid' \
-	compadd ${${${(M)${(f)"$(_call_program public-keyids gpg $needed --list-public-keys --list-options no-show-photos 2>/dev/null)"}:%pub*}#pub */}%% *} && return
+      compadd ${(M)${${(f)"$(_call_program public-keyids $words[1] $needed --list-public-keys --list-options no-show-photos)"}## #}:#[0-9A-F](#c40)} && return
+  ;;
+  (option-list)
+    _sequence _wanted options expl option \
+        compadd - {no-,}show-{photos,usage,policy-urls,{std,user}-notations,keyserver-urls,uid-validity,unusable-{uids,subkeys},keyring,sig-{expire,subpackets}} && return
+  ;;
+  (verify-options)
+    _sequence _wanted options expl option \
+        compadd - {no-,}show-{photos,policy-urls,{std,user}-notations,keyserver-urls,uid-validity,unusable-uids,primary-uid-only} {no-,}pka-{lookups,trust-increase} && return
   ;;
 esac
 
diff --git a/Completion/Unix/Command/_ls b/Completion/Unix/Command/_ls
index 955b0894d..d10c4f9bf 100644
--- a/Completion/Unix/Command/_ls
+++ b/Completion/Unix/Command/_ls
@@ -168,6 +168,7 @@ else
 
     '--color=-[control use of color]:color:(never always auto)'
     "*--hide=[like -I, but overridden by -a or -A]:pattern: "
+    '--hyperlink=[output terminal codes to link files using file::// URI]::when:(none auto always)'
     '(--classify -F --indicator-style -p --file-type)'{--classify,-F}'[append file type indicators]'
     '(--file-type -p --indicator-style -F --classify)--file-type[append file type indicators except *]'
     '(--file-type -p --indicator-style -F --classify)-p[append / to directories]'
diff --git a/Completion/Unix/Command/_screen b/Completion/Unix/Command/_screen
index ebc8ba155..862da7544 100644
--- a/Completion/Unix/Command/_screen
+++ b/Completion/Unix/Command/_screen
@@ -66,14 +66,16 @@ _arguments -C \
   '-f-[set flow control]:flow control:((n\:flow\ control\ off a\:flow\ control\ auto \:flow\ control\ on))' \
   '-h[set the size of the scrollback history buffer]:buffer size' \
   '-i[interrupt output sooner when flow control is on]' \
-  '(-l)-ln[login mode off (do not update utmp database)]' \
+  "(-l)-ln[login mode off (don't update utmp database)]" \
   '(-ln)-l[login mode on (update utmp database)]' \
-  '(-)'{-ls,-list}'[list sessions/socket directory]' \
+  '(- *)'{-ls,-list}'[list sessions/socket directory]: :->any-sessions' \
   "-L[terminal's last character can be safely updated]" \
+  '-Logfile[set logfile name]:log file:_files' \
   '-m[ignore $STY variable, do create a new screen session]' \
   '-O[choose optimal output rather than exact vt100 emulation]' \
   '-p[preselect the named window]:window number or name:((\=\:windowlist -\:blank\ window \:window\ number))' \
   '-q[quiet startup, exit with non-zero return code if unsuccessful]' \
+  '-Q[send response to stdout of command qwery process]:screen command:(echo info lastmsg number select time title windows)' \
   '-r[reattach to a detached screen process]: :->detached-sessions' \
   '-Dr: :->any-sessions' \
   '-dr: :->any-sessions' \
@@ -85,12 +87,12 @@ _arguments -C \
   "-t[set title (window's name)]:title" \
   '-T[use term as $TERM for windows, rather than "screen"]:terminal type:_terminals' \
   '-U[tell screen to use UTF-8 encoding]' \
-  '(-)-v[print screen version]' \
-  '(-)-wipe[do nothing, clean up SockDir]' \
+  '(- *)-v[print screen version]' \
+  '(- *)-wipe[do nothing, clean up SockDir]: :->any-sessions' \
   '-x[attach to a not detached screen (multi display mode)]: :->attached-sessions' \
   '-Dx: :->any-sessions' \
   '-dx: :->any-sessions' \
-  '-X[execute command as a screen command in the specified session]:screencmd:(${scr_cmds[@]})' \
+  '-X[execute command as a screen command in the specified session]:screen command:(${scr_cmds[@]})' \
   '*:: :->normal' && ret=0
 
 if [[ -n $state ]]; then
diff --git a/Completion/Unix/Command/_setfacl b/Completion/Unix/Command/_setfacl
index af6c4d4e5..5c573a581 100644
--- a/Completion/Unix/Command/_setfacl
+++ b/Completion/Unix/Command/_setfacl
@@ -29,7 +29,7 @@ _arguments -s -S \
   '(-P --physical)'{-P,--physical}'[physical walk, do not follow symbolic links]' \
   '--restore=[restore ACLs]:file:_files' \
   '--test[test mode (ACLs are not modified)]' \
-  '--version[print version and exit]' \
-  '--help[this help text]' \
+  '(- *)'{-v,--version}'[display version information]' \
+  '(- *)'{-h,--help}'[display help information]' \
   '*: :_files'
 fi
diff --git a/Completion/Unix/Command/_strip b/Completion/Unix/Command/_strip
index f244b0ace..0703c50e4 100644
--- a/Completion/Unix/Command/_strip
+++ b/Completion/Unix/Command/_strip
@@ -25,6 +25,7 @@ if _pick_variant gnu=GNU solaris --version; then
     '(-s --strip-all)'{-s,--strip-all}'[remove all symbols]'
     '(-g -S -d --strip-debug)'{-g,-S,-d,--strip-debug}'[remove debugging symbols]'
     '--strip-unneeded[remove symbols not needed for relocation processing]'
+    "--no-merge-notes[don't attempt to remove redundant notes]"
     '*'{-K+,--keep-symbol=}'[keep given symbol]:symbol name'
     '*'{-N+,--strip-symbol=}'[strip given symbol]:symbol name'
     '(*)-o+[output file]:output file:_files'
diff --git a/Completion/Unix/Command/_truss b/Completion/Unix/Command/_truss
index 656c94244..d56839e02 100644
--- a/Completion/Unix/Command/_truss
+++ b/Completion/Unix/Command/_truss
@@ -15,6 +15,9 @@ args=(
 )
 
 case $OSTYPE in
+  solaris2.<11->)
+    args+=( '(-c)-A[include absolute timestamps in output]' )
+  ;|
   aix*|solaris*)
     args+=(
       '(-c)-E[include delta timestamps of time spent within the system call]'
diff --git a/Completion/Unix/Command/_vim b/Completion/Unix/Command/_vim
index 9fd2d63e8..f10d54ade 100644
--- a/Completion/Unix/Command/_vim
+++ b/Completion/Unix/Command/_vim
@@ -1,4 +1,4 @@
-#compdef vim gvim gex gview nvim rvim rview rgvim rgview evim eview vimdiff gvimdiff
+#compdef vim gvim gex gview nvim rvim rview rgvim rgview evim eview vimdiff gvimdiff mvim
 
 (( $+functions[_vim_files] )) ||
 _vim_files () {
@@ -99,7 +99,7 @@ if [[ "$state" = server ]]; then
 elif [[ $state = verbosity ]]; then
   _tags numbers files
   while _tags; do
-    _requested numbers && _describe 'verbosity [10]' "(
+    _requested numbers && _describe -V 'verbosity [10]' "(
       0:don\'t' display any messages'
       1:'display when viminfo file is read or written'
       2:'display sourced files'
diff --git a/Completion/Unix/Command/_wget b/Completion/Unix/Command/_wget
index 8a9cc871a..2a7390fba 100644
--- a/Completion/Unix/Command/_wget
+++ b/Completion/Unix/Command/_wget
@@ -1,6 +1,6 @@
 #compdef wget
 
-local curcontext="$curcontext" state line
+local curcontext="$curcontext" state line expl
 typeset -A opt_args
 
 _arguments -C -s \
@@ -19,12 +19,15 @@ _arguments -C -s \
   '(--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' \
+  '(--config)--no-config' '--rejected-log=:file:_files' \
   '(--tries -t)'{--tries=,-t+}'[set number of retries]:number of retries' \
   '--retry-connrefused[retry even if connection is refused]' \
   '(--output-document -O)'{--output-document=,-O+}'[specify file to write documents to]:output file:_files' \
   '(--continue -c)'{--continue,-c}'[continue getting an existing file]'  \
+  '--start-pos=:offset' '--show-progress' \
   '--progress=[set progress gauge type]:gauge type:->gauge' \
   '(--timestamping -N)'{--timestamping,-N}'[retrieve only files newer than existing]' \
+  '--no-if-modified-since' \
   "--no-use-server-timestamps[don't set the local file's timestamp by the one on the server]" \
   '(--server-response -S)'{--server-response,-S}'[print server response]' \
   "--spider[don't download anything]" \
@@ -49,11 +52,15 @@ _arguments -C -s \
   '(--http-user --ftp-user)--user[set both ftp and http user]:user' \
   '(--http-password --ftp-password)--password[set both ftp and http password]:password' \
   '(--password --http-password --ftp-password)--ask-password:[prompt for passwords]' \
+  '--use-askpass=:command:_command_names -e' \
   '--no-iri[turn off IRI support]' \
   '--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]' \
+  '(-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]" \
   '--protocol-directories[use protocol name in directories]' \
   '(--directory-prefix -P)'{--directory-prefix=,-P+}'[specify prefix to save files to]:prefix:_files -/' \
   '--cut-dirs=:number:' \
@@ -92,15 +99,20 @@ _arguments -C -s \
   '--private-key-type=[specify private key type]:key type:key type:(PEM DER)' \
   "--ca-certificate=[specify file with bundle of CA's]:file:_files" \
   "--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' \
   '--egd-file=[specify filename of EGD socket]:file:_files' \
+  '--no-hsts[disable HSTS]' \
+  '--hsts-file[specify path of HSTS database]:file:_files' \
   '(--user)--ftp-user=:user' \
   '(--password --ask-password)--ftp-password=:password' \
   "--no-remove-listing[don't remove \`.listing' files]" \
   '--no-glob[turn off FTP file name globbing]' \
   '--no-passive-ftp' \
   '--preserve-permissions[preserve remote file permissions with ftp]' \
-  '--retr-symlinks' \
+  --retr-symlinks --ftps-implicit --ftps-resume-ssl \
+  --ftps-clear-data-connection --ftps-fallback-to-ftp \
   '--warc-file=:file:_files' --warc-header=:string --warc-max-size=:number \
   --warc-cdx --warc-dedup=:file:_files --no-warc-compression --no-warc-digests \
   --no-warc-keep-log --warc-tempdir=:directory:_directories \
@@ -108,6 +120,7 @@ _arguments -C -s \
   '(--level -l)'{--level=,-l+}'[specify maximum recursion depth]:level' \
   '--delete-after' \
   '(--convert-links -k)'{--convert-links,-k}'[convert links to be relative]' \
+  --convert-file-only \
   '--backups=:max backups' \
   '(--backup-converted -K)'{--backup-converted,-K}'[backup files before conversion]' \
   '(--mirror -m -r -N -l)'{--mirror,-m}'[mirror (-r -N -l inf --no-remove-listing)]' \
@@ -129,8 +142,6 @@ _arguments -C -s \
   '(-np --no-parent)'{-np,--no-parent}"[don't ascend to parent directory]" \
   '--no-verbose' \
   '--no-clobber' \
-  '--no-directories' \
-  '--no-host-directories' \
   '--no-use-server-timestamps[do not set timestamp to server provided value]' \
   '--htmlify=:htmlify:' \
   '--no:no:->noflags' \
@@ -154,10 +165,15 @@ case "$state" in
     _values -s , 'filename char restriction' \
       '(windows)unix' \
       '(unix)windows' \
-      '(unix windows)nocontrol'
+      '(unix windows)nocontrol' \
+      ascii \
+      '(uppercase)lowercase' \
+      '(lowercase)uppercase'
   ;;
   header)
     local -a headers
+    local suf=': '
+    compquote suf
     headers=(
              Accept{,-{Charset,Encoding,Language,Datetime}}
              Authorization
@@ -191,7 +207,6 @@ case "$state" in
              X-ATT-DeviceId
              X-Wap-Profile
              )
-    headers=($^headers\\:\ )
-    _describe -t header 'HTTP header' headers
+    _wanted headers expl 'HTTP header' compadd -S $suf -a headers
   ;;
 esac