about summary refs log tree commit diff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-05-03 02:49:38 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-05-03 02:49:38 +0000
commit26785dfe6b5e36e520934585f91aaa44704bba75 (patch)
tree40f0c08763ae2cf9acff5fd2d578fb5ce197f7c8 /Completion/Unix/Command
parent4bf9b6583911e3c2163dd6317e32e2a0a76dc0ee (diff)
downloadzsh-26785dfe6b5e36e520934585f91aaa44704bba75.tar.gz
zsh-26785dfe6b5e36e520934585f91aaa44704bba75.tar.xz
zsh-26785dfe6b5e36e520934585f91aaa44704bba75.zip
Merge from trunk of files in 21315.
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_imagemagick10
-rw-r--r--Completion/Unix/Command/_java586
-rw-r--r--Completion/Unix/Command/_last17
-rw-r--r--Completion/Unix/Command/_links50
-rw-r--r--Completion/Unix/Command/_lsof44
-rw-r--r--Completion/Unix/Command/_perldoc59
-rw-r--r--Completion/Unix/Command/_user_admin68
-rw-r--r--Completion/Unix/Command/_yp112
-rw-r--r--Completion/Unix/Command/_zdump6
9 files changed, 947 insertions, 5 deletions
diff --git a/Completion/Unix/Command/_imagemagick b/Completion/Unix/Command/_imagemagick
index 91b044c5f..56d530326 100644
--- a/Completion/Unix/Command/_imagemagick
+++ b/Completion/Unix/Command/_imagemagick
@@ -14,7 +14,7 @@ typeset -A opt_args
 formats=jpg:jpeg:tiff:miff:ras:bmp:cgm:dcx:ps:eps:fig:fits:fpx:gif:mpeg:pbm:pgm:ppm:pcd:pcl:pdf:pcx:png:rad:rgb:rgba:rle:sgi:html:shtml:tga:ttf:uil:xwd:xbm:xpm:yuv
 
 if (( $# )); then
-  _files -g "*.(#i)(${~formats//:/|})(-.)" "$@"
+  _files "$@" -g "*.(#i)(${~formats//:/|})(-.)"
   return
 fi
 
@@ -49,7 +49,7 @@ case "$service" in
       '*-filter:filter type for resizing:(Point Box Triangle Hermite Hanning Hamming Blackman Gaussian Quadratic Cubic Catrom Mitchell Lanczos Bessel Sinc)' \
       '*-flip[vertical mirror image]' \
       '*-flop[horizontal mirror image]' \
-      '*-font:_x_font' \
+      '*-font:font:_x_font' \
       '*-foreground:color:_x_color' \
       '*-frame:border dimensions (<width>x<height>+<out>+<in>)' \
       '*-gamma[gamma correction level]:gamma correction level (<n> or <red>/<green>/<blue>)' \
@@ -84,7 +84,7 @@ case "$service" in
       '*-shared_memory' \
       '*-sharpen:sharpening factor (0.0 - 99.9%%)' \
       '*-size:image size (<width>x<height>+<offset>)' \
-      '*-text_font:_x_font' \
+      '*-text_font:font:_x_font' \
       '*-texture:background texture image:_imagemagick' \
       '*-title:image title' \
       '*-treedepth:color reduction tree depth' \
@@ -117,7 +117,7 @@ case "$service" in
       '*-depth:image depth:(8 16)' \
       '*-display:display:_x_display' \
       '*-dither[apply dithering]' \
-      '*-font:_x_font' \
+      '*-font:font:_x_font' \
       '*-foreground:color:_x_color' \
       '*-gamma[gamma correction level]:gamma correction level (<n> or <red>/<green>/<blue>)' \
       '*+gamma[gamma correction level (don'\''t change pixels)]:gamma correction level (<n> or <red>/<green>/<blue>)' \
@@ -138,7 +138,7 @@ case "$service" in
       '*-scenes:image scene number' \
       '*-shared_memory' \
       '*-size:image size (<width>x<height>+<offset>)' \
-      '*-text_font:_x_font' \
+      '*-text_font:font:_x_font' \
       '*-title:image title' \
       '*-treedepth:color reduction tree depth' \
       '*-trim' \
diff --git a/Completion/Unix/Command/_java b/Completion/Unix/Command/_java
new file mode 100644
index 000000000..f6565bc64
--- /dev/null
+++ b/Completion/Unix/Command/_java
@@ -0,0 +1,586 @@
+#compdef javac java javadoc appletviewer jar jdb javah javap extcheck rmic rmiregistry rmid serialver native2ascii keytool jarsigner policytool
+
+local expl tmp jdb_args jar_cmd match basedir ret=1
+local curcontext="$curcontext" state line jf
+typeset -A opt_args tmpassoc
+
+jdb_args=()
+
+case "$service" in
+javac)
+  _arguments -C \
+    '-g-[generate debugging information]:debug:->debug' \
+    '-nowarn[generate no warnings]' \
+    '-verbose[output messages about what the compiler is doing]' \
+    '-deprecation[output source locations where deprecated APIs are used]' \
+    '-classpath[specify where to find user class files]:class path:->classpath' \
+    '-sourcepath[specify where to find input source files]:source path:->sourcepath' \
+    '-bootclasspath[override location of bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
+    '-extdirs[override location of installed extensions]:extensions directories:->extdirs' \
+    '-d[specify where to place generated class files]:directory:_files -/' \
+    '-encoding[specify character encoding used by source files]:encoding:->encoding' \
+    '-source[provide source compatibility with specified release]:release:(1.{2..5})' \
+    '-target[specify VM version]:release:(1.{1..5})' \
+    '-help[print a synopsis of standard options]' \
+    '*:java source file:_files -g \*.java\(-.\)' && return 0
+  ;;
+
+jdb)
+  jdb_args=(
+    '-host[specify host to connect to]:host:_hosts'
+    '-password[specify password]:password:'
+  )
+  ;&
+
+java)
+  _arguments -C \
+    "$jdb_args[@]" \
+    '(-cp -classpath)'{-cp,-classpath}'[specify path for user class files]:class path:->classpath' \
+    '-D-[specify a property]:property:->property' \
+    '(-verbose:class)-verbose[print class information]' \
+    '(-verbose)-verbose\:class[print class information]' \
+    '-verbose\:gc[print gc information]' \
+    '-verbose\:jni[print JNI information]' \
+    '-version[print version]' \
+    '-help[print help message]' \
+    '(- 1)-jar[specify a program capsulated as jar]:jar:_files -g \*.jar\(-.\)' \
+    '(-):class:_java_class -m main ${(kv)opt_args[(i)(-classpath|-cp)]}' \
+    '*::args: _normal' \
+     && return 0
+  ;;
+
+javadoc)
+  _arguments -C \
+    '-overview[specify overview file]:_files' \
+    '-public[display public classes and members only]' \
+    '-protected[display public/protected classes and members only (default)]' \
+    '-package[display packages, public/protected classes and members only]' \
+    '-private[display all classes and members]' \
+    '-help[print help message]' \
+    '-doclet[specify a doclet]:doclet:_java_class -t doclet ${(kv)opt_args[(i)-classpath]}' \
+    '-docletpath[specify a path to search doclet]:doclet path:->docletpath' \
+    '-1.1[Javadoc 1.1 compatible output]' \
+    '-sourcepath[specify path for source files]:source path:->sourcepath' \
+    '-classpath[specify path for user class files]:class path:->classpath' \
+    '-bootclasspath[specify path for bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
+    '-extdirs[specify directories for extensions]:extensions directories:->extdirs' \
+    '-verbose[print verbose messages]' \
+    '-locale[specify locale]:language_country_variant:' \
+    '-encoding[specify character encoding for source files]:encoding:->encoding' \
+    '-J-[specify java option]:java option:' \
+    '-d[specify destination directory]:destination directory:_files -/' \
+    '-use[display pages for use]' \
+    '-version[include @version text]' \
+    '-author[include @author text]' \
+    '-splitindex[split index file for each alphabet]' \
+    '-windowtitle[specify HTML title element]:title element:' \
+    '-doctitle[specify title]:document title:' \
+    '-header[specify header text]:header text:' \
+    '-footer[specify footer text]:footer text:' \
+    '-bottom[specify bottom text]:bottom text:' \
+    '-link[generate a link to external reference classes]:document URL:' \
+    '-linkoffline[generate a link for external reference class names]:document URL::package list URL:' \
+    '-group[generate tables for each groupes]:group heading::package patterns:' \
+    '-nodeprecated[do not document deprecated API]' \
+    '-nodeprecatedlist[do not generate deprecated API list]' \
+    '-notree[do not generate class and interface hierarchy]' \
+    '-noindex[do not generate index]' \
+    '-nohelp[do not generate help link]' \
+    '-nonavbar[do not generate navigation bar]' \
+    '-helpfile[specify alternative help link]:helpfile path/filename:' \
+    '-stylesheet[specify alternative HTML style sheet]:stylesheet path/filename:' \
+    '-docencoding[specify character encoding for output HTML files]:encoding:->encoding' \
+    '*:package name, source file or @list:->docsrc' && ret=0
+  ;;
+
+appletviewer)
+  _arguments -C \
+    '-debug[run applet on jdb]' \
+    '-encoding[specify character encoding for source files]:encoding:->encoding' \
+    '-J-[specify java option]:java option:' \
+    '*:URL:_urls' && return 0
+  ;;
+
+jar)
+  if (( CURRENT == 2 )); then
+    compset -P -
+    _values -s '' 'jar command' \
+      '(  t x u)c[create new archive]' \
+      '(c   x u)t[list the table of archive]' \
+      '(c t   u)x[extract files from archive]' \
+      '(c t x  )u[update archive]' \
+      'f[specify archive file]' \
+      'v[verbose mode]' \
+      'm[specify manifest file]' \
+      '0[store only without using ZIP compression]' \
+      'M[do not create manifest file]' && return
+  else
+    jar_cmd="${words[2]#-}"
+    tmpassoc=(
+      m ':manifest file:_files'
+      f ':archive file:_files -g "*.([ejw]ar|zip)(-.)"'
+    )
+    _arguments -C \
+      "${jar_cmd/[^-]*/:dummy:}" \
+      ${${(s::)jar_cmd}/(#b)(?)/$tmpassoc[$match[1]]} \
+      '*:file:->jararg' && return 0
+  fi
+  ;;
+
+javah|javah_g)
+  _arguments -C \
+    '-o[specify output file]:output file:_files' \
+    '-d[specify destination directory]:directory:_files -/' \
+    '-stubs[generate stubs]' \
+    '-verbose[print verbose messages]' \
+    '-help[print help message]' \
+    '-version[print version]' \
+    '-jni[JNI-style native method function prototypes]' \
+    '-classpath[specify path for user class files]:class path:->classpath' \
+    '-bootclasspath[specify path for bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
+    '-old[generate old JDK1.0-style header files]' \
+    '-force[force output]' \
+    '*:class:_java_class -m main ${(kv)opt_args[(i)-classpath]}' && return 0
+  ;;
+
+javap)
+  _arguments -C \
+    '-help[print help message]' \
+    '-l[line and local variable tables]' \
+    '-b[backward compatible to JDK1.1]' \
+    '-public[only public classes and members]' \
+    '-protected[only protected and public classes and members]' \
+    '-package[only package, protected and public classes and members (default)]' \
+    '-private[all classes and members]' \
+    '-J-[specify java option]:java option:' \
+    '-s[internal type signatures]' \
+    '-c[disassemble code]' \
+    '-verbose[stack size, number of locals and args for methods]' \
+    '-classpath[specify path for user class files]:class path:->classpath' \
+    '-bootclasspath[specify path for bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
+    '-extdirs[specify directories for extensions]:extensions directories:->extdirs' \
+    '*:class:_java_class ${(kv)opt_args[(i)-classpath]}' && return 0
+  ;;
+
+extcheck)
+  _arguments \
+    '-verbose[print verbose messages]' \
+    ':target jar file:_files -g \*.jar\(-.\)' && return 0
+  ;;
+
+rmic)
+  _arguments -C \
+    '-classpath[specify path for user class files]:class path:->classpath' \
+    '-d[specify destination directory]:directory:_files -/' \
+    '-depend[treat dependencies]' \
+    '-g[enable debugging]' \
+    '-J-[specify java option]:java option:' \
+    '-keepgenerated[retain generated source files]' \
+    '-nowarn[disable warnings]' \
+    '-show[GUI mode]' \
+    '-vcompat[compatible with JDK 1.1 and 1.2 (default)]' \
+    '-verbose[print verbose messages]' \
+    '-v1.1[JDK 1.1 stub protocol]' \
+    '-v1.2[JDK 1.2 stub protocol]' \
+    '*:package qualified class name:_java_class  ${(kv)opt_args[(i)-classpath]}' && return 0
+  ;;
+
+rmiregistry)
+  if (( CURRENT == 2 )); then
+    _wanted ports expl 'port to listen on' _ports && return
+  else
+    _message 'no more arguments'
+  fi
+  ;;
+
+rmid)
+  _arguments \
+    '-C-[specify command line argument for child process]:command line argument for child process:' \
+    '-log[specify log directory]:directory to place logs:_files -/' \
+    '-port[specify port]:port:_ports' \
+    '-stop[stop rmid]:' && return 0
+  ;;
+       
+serialver)
+  _arguments \
+    '-classpath[specify where to find user class files]:class path:->classpath' \
+    '(*)-show[display user interface]' \
+    '(-show)*:class:_java_class ${(kv)opt_args[(i)-classpath]}' && return 0
+  ;;
+
+native2ascii)
+  _arguments -C \
+    '-reverse[convert Latin-1 (with \udddd) to native encoding]' \
+    '-encoding[specify character encoding]:encoding:->encoding' \
+    ':input file:_files' \
+    ':output file:_files' && return 0
+  ;;
+
+keytool)
+  _arguments \
+      '-J-[specify java option]:java option:' \
+    - genkey \
+      '-genkey[command to generate a key pair]' \
+      '-alias[alias]:alias:' \
+      '-keyalg[key algorithm]:key algorithm:' \
+      '-keysize[key size]:key size:' \
+      '-sigalg[signature algorithm]:signature algorithm:' \
+      '-dname[X.500 distinguish name]:X.500 distinguish name:' \
+      '-keypass[password for private key]:password for private key:' \
+      '-validity[valid days]:number of days:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - import \
+      '-import[command to import certificate or certificate chain]' \
+      '-alias[alias]:alias:' \
+      '-file[specify certificate file]:certificate file:_files' \
+      '-keypass[password for private key]:password for private key:' \
+      '-noprompt[disable interaction with the user]' \
+      '-trustcacerts[use cacerts]' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - selfcert \
+      '-selfcert[command to generate X.509 v1 self-signed certificate]' \
+      '-alias[alias]:alias:' \
+      '-sigalg[signature algorithm]:signature algorithm:' \
+      '-dname[X.500 distinguish name]:X.500 distinguish name:' \
+      '-validity[valid days]:number of days:' \
+      '-keypass[password for private key]:password for private key:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - identitydb \
+      '-identitydb[command to read identity database]' \
+      '-file[specify identity database file]:identity database file:_files' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - certreq \
+      '-certreq[command to generate certificate signing request]' \
+      '-alias[alias]:alias:' \
+      '-sigalg[signature algorithm]:signature algorithm:' \
+      '-file[specify certificate signing request file]:certificate signing request file:_files' \
+      '-keypass[password for private key]:password for private key:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - export \
+      '-export[command to store certificate]' \
+      '-alias[alias]:alias:' \
+      '-file[specify certificate file]:certificate file:_files' \
+      '-rfc[make certificate format printable as RFC 1421]' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - list \
+      '-list[command to print keystore entry]' \
+      '-alias[alias]:alias:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '(-rfc)-v[make certificate format human-readable]' \
+      '(-v)-rfc[make certificate format printable as RFC 1421]' \
+    - printcert \
+      '-printcert[command to print certificate in a human-readable format]' \
+      '-file[specify certificate file]:certificate file:_files' \
+      '-v[verbose mode]' \
+    - keyclone \
+      '-keyclone[command to create new keystore entry]' \
+      '-alias[alias]:alias:' \
+      '-dest[destination alias]:destination alias:' \
+      '-keypass[password for private key]:password for private key:' \
+      '-new[password for private key of new entry]:password for private key of new entry:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - storepasswd \
+      '-storepasswd[command to change password for keystore]' \
+      '-new[new password]:new password:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - keypasswd \
+      '-keypasswd[command to change password for private key]' \
+      '-alias[alias]:alias:' \
+      '-keypass[old password for private key]:old password for private key:' \
+      '-new[nwe password for private key]:new password for private key:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - delete \
+      '-delete[command to delete entry]' \
+      '-alias[alias]:alias:' \
+      '-storetype[keystore type]:store type:' \
+      '-keystore[keystore location]:keystore location:' \
+      '-storepass[password for keystore]:password:' \
+      '-v[verbose mode]' \
+    - help \
+      '(-J)-help[command to print help message]' && return 0
+  ;;
+
+jarsigner)
+  _arguments \
+    '-keystore[specify URL for keystore location]:URL for keystore location:' \
+    '-storetype[specify keystore type]:store type:' \
+    '-storepass[specify password for keystore]:password:' \
+    '-keypass[specify password for private key]:password:' \
+    '-sigfile[specify base file name of .SF and .DSA files to be generated]:sigfile:_files' \
+    '-signedjar[specify signed JAR file]:_files -g "*.(jar|zip)(-.)"' \
+    '(2)-verify[verify mode]' \
+    '-certs[output certificate information in verify mode]' \
+    '-verbose[print verbose messages]' \
+    '-internalsf[old behaviour]' \
+    '-sectionsonly[omit header of hash of the whole manifest file]' \
+    '-J-[specify java option]:java option:' \
+    ':jar file:_files -g "*.(jar|zip)(-.)"' \
+    ':alias:' && return 0
+  ;;
+
+policytool)
+  _arguments \
+    '-file:policy file:_files' && return 0
+  ;;
+
+*)
+  _message 'unknown command'
+  ;;
+esac
+
+[[ -n "$state" ]] &&
+case "$state" in
+debug)
+  if [[ -prefix :*, ]]; then
+    compset -P :
+    _values -s , "debug info" lines vars source && return
+  else
+    _description debuginfo expl "debug info"
+    compadd -P: "$expl[@]" none && ret=0
+    compadd -P: -qS, "$expl[@]" lines vars source && ret=0
+  fi
+  ;;
+
+classpath|sourcepath|bootstrapclasspath|docletpath)
+  compset -P '*:'
+  compset -S ':*'
+  _alternative \
+    "classpath:$state:_path_files -qS: -g '*.(jar|zip)(-.)'" \
+    "classpath:$state:_path_files -r': ' -/" && return
+  ;;
+
+extdirs)
+  compset -P '*:'
+  _path_files -/ && return
+  ;;
+
+encoding)
+  tmp=(
+    'US-ASCII:American Standard Code for Information Interchange'
+    'Cp1252:Windows Latin-1'
+    'ISO-8859-1:ISO 8859-1, Latin alphabet No. 1 '
+    'ISO-8859-15:Latin alphabet No. 9 '
+    'UTF-8:Eight-bit UCS Transformation Format'
+    'UTF-16:Sixteen-bit UCS Transformation Format, byte order identified by an'
+    'UTF-16BE:Sixteen-bit UCS Transformation Format, big-endian byte order '
+    'UTF-16LE:Sixteen-bit UCS Transformation Format, little-endian byte order '
+    'ASCII:American Standard Code for Information Interchange'
+    'ISO8859_1:ISO 8859-1, Latin alphabet No. 1'
+    'UnicodeBig:Sixteen-bit Unicode Transformation Format, big-endian'
+    'UnicodeBigUnmarked:Sixteen-bit Unicode Transformation Format, big-endian'
+    'UnicodeLittle:Sixteen-bit Unicode Transformation Format, little-endian'
+    'UnicodeLittleUnmarked:Sixteen-bit Unicode Transformation Format, little-endian'
+    'UTF8:Eight-bit Unicode Transformation Format'
+    'UTF-16:Sixteen-bit Unicode Transformation Format, byte order'
+    'Big5:Big5, Traditional Chinese'
+    'Big5_HKSCS:Big5 with Hong Kong extensions, Traditional Chinese'
+    'Big5_Solaris:Big5 with seven additional Hanzi ideograph character mappings '
+    'Cp037:USA, Canada (Bilingual, French), Netherlands, Portugal, Brazil, Australia'
+    'Cp273:IBM Austria, Germany'
+    'Cp277:IBM Denmark, Norway'
+    'Cp278:IBM Finland, Sweden'
+    'Cp280:IBM Italy'
+    'Cp284:IBM Catalan/Spain, Spanish Latin America'
+    'Cp285:IBM United Kingdom, Ireland'
+    'Cp297:IBM France'
+    'Cp420:IBM Arabic'
+    'Cp424:IBM Hebrew'
+    'Cp437:MS-DOS United States, Australia, New Zealand, South Africa'
+    'Cp500:EBCDIC 500V1'
+    'Cp737:PC Greek'
+    'Cp775:PC Baltic'
+    'Cp838:IBM Thailand extended SBCS'
+    'Cp850:MS-DOS Latin-1'
+    'Cp852:MS-DOS Latin-2'
+    'Cp855:IBM Cyrillic'
+    'Cp856:IBM Hebrew'
+    'Cp857:IBM Turkish'
+    'Cp858:Variant of Cp850 with Euro character'
+    'Cp860:MS-DOS Portuguese'
+    'Cp861:MS-DOS Icelandic'
+    'Cp862:PC Hebrew'
+    'Cp863:MS-DOS Canadian French'
+    'Cp864:PC Arabic'
+    'Cp865:MS-DOS Nordic'
+    'Cp866:MS-DOS Russian'
+    'Cp868:MS-DOS Pakistan'
+    'Cp869:IBM Modern Greek'
+    'Cp870:IBM Multilingual Latin-2'
+    'Cp871:IBM Iceland'
+    'Cp874:IBM Thai'
+    'Cp875:IBM Greek'
+    'Cp918:IBM Pakistan (Urdu)'
+    'Cp921:IBM Latvia, Lithuania (AIX, DOS)'
+    'Cp922:IBM Estonia (AIX, DOS)'
+    'Cp930:Japanese Katakana-Kanji mixed with 4370 UDC, superset of 5026'
+    'Cp933:Korean Mixed with 1880 UDC, superset of 5029'
+    'Cp935:Simplified Chinese Host mixed with 1880 UDC, superset of 5031'
+    'Cp937:Traditional Chinese Host miexed with 6204 UDC, superset 5033'
+    'Cp939:Japanese Latin Kanji mixed with 4370 UDC, superset of 5035'
+    'Cp942:IBM OS/2 Japanese, superset of Cp932'
+    'Cp942C:Variant of Cp942'
+    'Cp943:IBM OS/2 Japanese, superset of Cp932 and Shift-JIS'
+    'Cp943C:Variant of Cp943'
+    'Cp948:OS/2 Chinese (Taiwan) superset of 938'
+    'Cp949:PC Korean'
+    'Cp949C:Variant of Cp949'
+    'Cp950:PC Chinese (Hong Kong, Taiwan)'
+    'Cp964:AIX Chinese (Taiwan)'
+    'Cp970:AIX Korean'
+    'Cp1006:IBM AIX Pakistan (Urdu)'
+    'Cp1025:IBM Multilingual Cyrillic (Bulgaria, Bosnia)'
+    'Cp1025:IBM Multilingual Cyrillic - Bulgaria, Bosnia, Herzegovinia, Macedonia (FYR)'
+    'Cp1026:IBM Latin-5, Turkey'
+    'Cp1046:IBM Arabic - Windows'
+    'Cp1097:IBM Iran (Farsi)/Persian'
+    'Cp1098:IBM Iran (Farsi)/Persian (PC)'
+    'Cp1112:IBM Latvia, Lithuania'
+    'Cp1122:IBM Estonia'
+    'Cp1123:IBM Ukraine'
+    'Cp1124:IBM AIX Ukraine'
+    'Cp1140:Variant of Cp037 with Euro character'
+    'Cp1141:Variant of Cp273 with Euro character'
+    'Cp1142:Variant of Cp277 with Euro character'
+    'Cp1143:Variant of Cp278 with Euro character'
+    'Cp1144:Variant of Cp280 with Euro character'
+    'Cp1145:Variant of Cp284 with Euro character'
+    'Cp1146:Variant of Cp285 with Euro character'
+    'Cp1147:Variant of Cp297 with Euro character'
+    'Cp1148:Variant of Cp500 with Euro character'
+    'Cp1149:Variant of Cp871 with Euro character'
+    'Cp1250:Windows Eastern European'
+    'Cp1251:Windows Cyrillic'
+    'Cp1253:Windows Greek'
+    'Cp1254:Windows Turkish'
+    'Cp1255:Windows Hebrew'
+    'Cp1256:Windows Arabic'
+    'Cp1257:Windows Baltic'
+    'Cp1258:Windows Vietnamese'
+    "Cp1381:IBM OS/2, DOS People's Republic of China (PRC)"
+    "Cp1383:IBM AIX People's Republic of China (PRC)"
+    'Cp33722:IBM-eucJP - Japanese (superset of 5050)'
+    'EUC_CN:GB2312, EUC encoding, Simplified Chinese'
+    'EUC_JP:JIS X 0201, 0208, 0212, EUC encoding, Japanese'
+    'EUC_KR:KS C 5601, EUC encoding, Korean'
+    'EUC_TW:CNS11643 (Plane 1-3), EUC encoding, Traditional Chinese'
+    'GB18030:Simplified Chinese, PRC standard'
+    'GBK:GBK, Simplified Chinese'
+    'ISCII91:ISCII91 encoding of Indic scripts'
+    'ISO2022CN:ISO 2022 CN, Chinese (conversion to Unicode only)'
+    'ISO2022CN_CNS:CNS 11643 in ISO 2022 CN form, Traditional Chinese'
+    'ISO2022CN_GB:GB 2312 in ISO 2022 CN form, Simplified Chinese'
+    'ISO2022JP:JIS X 0201, 0208 in ISO 2022 form, Japanese'
+    'ISO2022KR:ISO 2022 KR, Korean'
+    'ISO8859_2:ISO 8859-2, Latin alphabet No. 2'
+    'ISO8859_3:ISO 8859-3, Latin alphabet No. 3'
+    'ISO8859_4:ISO 8859-4, Latin alphabet No. 4'
+    'ISO8859_5:ISO 8859-5, Latin/Cyrillic alphabet'
+    'ISO8859_6:ISO 8859-6, Latin/Arabic alphabet'
+    'ISO8859_7:ISO 8859-7, Latin/Greek alphabet'
+    'ISO8859_8:ISO 8859-8, Latin/Hebrew alphabet'
+    'ISO8859_9:ISO 8859-9, Latin alphabet No. 5'
+    'ISO8859_13:ISO 8859-13, Latin alphabet No. 7'
+    'ISO8859_15:ISO 8859-15, Latin alphabet No. 9'
+    'JIS0201:JIS X 0201, Japanese'
+    'JIS0208:JIS X 0208, Japanese'
+    'JIS0212:JIS X 0212, Japanese'
+    'JISAutoDetect:Detects and converts from Shift-JIS, EUC-JP, ISO 2022 JP'
+    'Johab:Johab, Korean'
+    'KOI8_R:KOI8-R, Russian'
+    'MS874:Windows Thai'
+    'MS932:Windows Japanese'
+    'MS936:Windows Simplified Chinese'
+    'MS949:Windows Korean'
+    'MS950:Windows Traditional Chinese'
+    'MacArabic:Macintosh Arabic'
+    'MacCentralEurope:Macintosh Latin-2'
+    'MacCroatian:Macintosh Croatian'
+    'MacCyrillic:Macintosh Cyrillic'
+    'MacDingbat:Macintosh Dingbat'
+    'MacGreek:Macintosh Greek'
+    'MacHebrew:Macintosh Hebrew'
+    'MacIceland:Macintosh Iceland'
+    'MacRoman:Macintosh Roman'
+    'MacRomania:Macintosh Romania'
+    'MacSymbol:Macintosh Symbol'
+    'MacThai:Macintosh Thai'
+    'MacTurkish:Macintosh Turkish'
+    'MacUkraine:Macintosh Ukraine'
+    'SJIS:Shift-JIS, Japanese'
+    'TIS620:TIS620, Thai'
+  )
+  _describe 'character encoding' tmp --
+  ;;
+
+property)
+  if compset -P '*='; then
+    _default && return
+  else
+    _message -e property-names 'property name'
+  fi
+  ;;
+
+docsrc)
+  if compset -P @; then
+    _wanted files expl 'package/source list file' _files && return
+  else
+    _wanted files expl 'package or source' _files -g '*.java(-.)' && return
+  fi
+  ;;
+
+jararg)
+  if [[ -prefix - ]]; then
+    tmp=('-C:chdir')
+    _describe -o 'option' tmp -- && return
+  elif [[ "$words[CURRENT - 2]" == -C ]]; then
+    _wanted file expl 'input file' _files -W "($words[CURRENT - 1])" && return
+  elif [[ "$words[CURRENT - 1]" == -C ]]; then
+    _wanted directories expl 'chdir to' _files -/ && return
+  elif [[ $words[2] = *x* ]]; then
+    jf="$words[3]"
+    if [[ $jf != $_jar_cache_name && -f $jf ]]; then
+      _jar_cache_list=("${(@f)$($words[1] tf $jf)}")
+      _jar_cache_name=$jf
+    fi
+
+    _wanted files expl 'file from archive' _multi_parts / _jar_cache_list && return
+  else
+    _wanted files expl 'input file' _files && return
+  fi
+  ;;
+
+*)
+  _message "unknown state: $state"
+  ;;
+esac
+
+return ret
diff --git a/Completion/Unix/Command/_last b/Completion/Unix/Command/_last
new file mode 100644
index 000000000..43a08a709
--- /dev/null
+++ b/Completion/Unix/Command/_last
@@ -0,0 +1,17 @@
+#compdef last lastb
+
+_arguments -s \
+  '-a[display hostname in last column]' \
+  '-n[number]:number' \
+  '-[number]:number' \
+  '-f[filename]:filename:_files' \
+  '-R[suppress display of hostname field]' \
+  '-d[translate IP to hostname]' \
+  '-i[display IP]' \
+  '-o[read old-format wtmp]' \
+  '-x[display shutdown/runlevel entries]' \
+  '-h[hostname]:host:_hosts' \
+  '-s[report duration in seconds]' \
+  '-t[tty]:tty' \
+  '-w[widen duration field]' \
+  '*:user:_users'
diff --git a/Completion/Unix/Command/_links b/Completion/Unix/Command/_links
new file mode 100644
index 000000000..34bb64560
--- /dev/null
+++ b/Completion/Unix/Command/_links
@@ -0,0 +1,50 @@
+#compdef links
+
+local curcontext="$curcontext" state line ret=1
+typeset -A opt_args
+
+_arguments -C \
+  '(-help)-anonymous[restrict links so that it can run on an anonymous account]' \
+  '(-help)-assume-codepage[specify default codepage to use]:codepage' \
+  '(-help)-async-dns[asynchronous DNS resolver]:bool:((0\:on 1\:off))' \
+  '(-help)-download-dir[default download directory]:_files -/' \
+  '(-help)-driver[graphics driver to use]:graphics driver:->graphics_drivers' \
+  '(-help)-dump[dump the page as pure text]' \
+  '(-help)-format-cache-size[number of formatted document pages cached]:pages' \
+  '(-help)-ftp-proxy[specify ftp proxy server]:proxy:->proxies' \
+  '(-help)-g[run in graphics mode rather than plain text mode]' \
+  '-help[prints the help screen]' \
+  '(-help)-http-proxy[specify web proxy server]:proxy:->proxies' \
+  '(-help)-image-cache-size[image cache memory]:memory (kilobytes)' \
+  '(-help)-max-connections[maximum number of concurrent connections]:connections' \
+  '(-help)-max-connections-to-host[maximum number of concurrent connection to a given host]:connections' \
+  '(-help)-memory-cache-size[cache memory]:kilobytes' \
+  '(-help)-no-connect[runs links as a separate instance]' \
+  '(-help)-receive-timeout[timeout on receive]:timeout (seconds)' \
+  '(-help)-retries[number of retries]:retries' \
+  '(-help)-source[dump the source page]' \
+  '(-help)-unrestartable-receive-timeout[timeout on non restartable connections]:timeout (seconds)' \
+  '(-help)-version[prints the links version number and exit]' \
+  ':URL:->html' && ret=0
+
+case $state in
+  html)
+    _alternative 'files:file:_files -g "*.x#html(-.)"' 'urls:URL:_urls' && ret=0
+  ;;
+  graphics_drivers)
+    local -a vals
+    vals=( ${=${${${(f)"$(_call_program links-graphics-drivers links -driver help 2>&1)"}[-1]}//','/''}} )
+    _describe -t links-graphics-drivers 'graphics driver' vals && ret=0
+  ;;
+  proxies)
+    local suf=-S:
+    if compset -P '*:'; then
+      _message -e ports 'port number'
+    else
+      compset -S ':*' && suf= 
+      _hosts $suf && ret=0
+    fi
+  ;;  
+esac
+
+return ret
diff --git a/Completion/Unix/Command/_lsof b/Completion/Unix/Command/_lsof
new file mode 100644
index 000000000..aca9963c2
--- /dev/null
+++ b/Completion/Unix/Command/_lsof
@@ -0,0 +1,44 @@
+#compdef lsof
+
+_arguments -s -S \
+  '(-)'{-\?,-h}'[list help]' \
+  '-a[AND selections]' \
+  '-b[avoid kernel blocks]' \
+  '-C[disable reporting of path name components]' \
+  '-c[list files for command beginning with specified char]:char' \
+  '+d[search for open instances for contents of specified dir]:search directory:_files -/' \
+  '-d[specify list of file descriptors to exclude/include]:file descriptors' \
+  '+D[recursively search from specified dir]:search directory:_files -/' \
+  '-D[direct use of device cache file]:function:((\?\:report\ device\ cache\ file\ paths b\:build\ the\ device\ cache\ file i\:ignore\ the\ device\ cache\ file r\:read\ the\ device\ cache\ file u\:read\ and\ update\ the\ device\ cache\ file))' \
+  '-f[inhibit listing of kernel file structure info]::info type or path' \
+  '+f[enable listing of kernel file structure info]::info type' \
+  '-F[select output fields]:fields' \
+  '-g[select by process group id]::process group id' \
+  '*-i[select internet files]:address' \
+  '-k[specify kernel name list file]:kernel file:_files' \
+  '-l[inhibit conversion of UIDs to user names]' \
+  '-L[list no link counts]' \
+  '+L[list all link counts]::max link count for listed files' \
+  '-m[specify kernel memory file]:kernel memory file:_files' \
+  '-M[disable reporting of portmapper registrations]' \
+  '+M[enable reporting of portmapper registrations]' \
+  '-n[inhibit conversion of network numbers to hostnames]' \
+  '-N[select listing of NFS files]' \
+  '(-s)-o[list file offset]' \
+  '-O[avoid overheads of bypassing potential blocking]' \
+  '-P[inhibit conversion of port numbers to port names]' \
+  '-p[list files for specified processes]:process ID:_pids' \
+  '-r[repeat listing endlessly]::delay (seconds)' \
+  '+r[repeat listing until no files listed]::delay (seconds)' \
+  '-R[list parent PID]' \
+  '(-o)-s[list file size]' \
+  '-S[specify timeout for kernel functions that might deadlock]:timeout (seconds)' \
+  '-T[select reporting of TCP/TPI info]::info type:((q\:queue\ length\ reporting s\:state\ reporting w\:window\ size\ reporting))' \
+  '(+w -w)-t[terse output]' \
+  '-u[list files owned by specified users]:user:_users -S,' \
+  '-U[list Unix domain socket files]' \
+  '(-)-v[list version info]' \
+  '-V[indicate unsuccessfully searched for items]' \
+  '(-t)+w[suppress warnings]' \
+  '(-t)-w[enable warnings]' \
+  '*:file:_files'
diff --git a/Completion/Unix/Command/_perldoc b/Completion/Unix/Command/_perldoc
new file mode 100644
index 000000000..8c816b502
--- /dev/null
+++ b/Completion/Unix/Command/_perldoc
@@ -0,0 +1,59 @@
+#compdef perldoc -value-,PERLDOC,-default-
+
+local curcontext="$curcontext" state line expl args ret=1
+typeset -A opt_args
+
+args=( '*:Perl pod pages:->perl-pods' )
+
+if [[ $service = *PERLDOC* ]]; then
+  compset -q
+  words=( fake "$words[@]" )
+  (( CURRENT++ ))
+  args=()
+fi
+
+_arguments -C -s -S -A "-*" \
+  '(- *)-h[print help information]' \
+  '(- *)-V[display version information]' \
+  '-v[verbose output]' \
+  '-t[use plain text output instead of nroff]' \
+  '-u[show raw Pod source]' \
+  '*-m[display entire module]:module:_perl_modules' \
+  '-l[display only filename of the module found]' \
+  '-F[consider arguments as filenames]' \
+  '(-q)-f+[view documentation for Perl built-in function]:perl builtin function:->perl-builtin-funcs' \
+  '(-f)-q+[search question headings in Perl FAQ]:regular expression' \
+  '(-d)-T[send output direct to stdout and not via pager]' \
+  '(-T)-d+[specify output file]:output file:_files' \
+  '-o+[specify output format]:output format:(man nroff pod rtf text tk xml latex)' \
+  '-M[specifies module to use for formatting]:module:_perl_modules' \
+  '-w[specify option to formatter]:option' \
+  '-X[use an index if present]' \
+  '-n+[specify replacement for nroff]:nroff replacement:_command_names -e' \
+  '-r[recursive search]' \
+  '-i[ignore case]' \
+  "$args[@]" && ret=0
+
+case  $state in
+  perl-builtin-funcs)
+    : ${(A)_perl_builtin_funcs:=${(u)${${(M)${(f)"$(_call_program functions \
+	perldoc -u perlfunc 2>/dev/null)"}:#\=item [a-z]*}#* }%%[^a-z]*}}
+
+    _wanted functions expl 'perl built-in function' compadd "$@" -a - \
+	_perl_builtin_funcs && ret=0
+  ;;
+
+  perl-pods)
+    if (( $+opt_args[-F] )); then
+      _wanted files expl 'Perl modules and .pods' \
+          _files -g "*.(pod|pm)(-.)" && ret=0
+    else
+      _alternative \
+	'modules:module: _perl_modules -tP' \
+	'pods:base pod: _perl_basepods' \
+	'files:module or .pod file:_files -g "*.(pod|pm)(-.)"' && ret=0
+    fi
+  ;;
+esac
+
+return ret
diff --git a/Completion/Unix/Command/_user_admin b/Completion/Unix/Command/_user_admin
new file mode 100644
index 000000000..281171d17
--- /dev/null
+++ b/Completion/Unix/Command/_user_admin
@@ -0,0 +1,68 @@
+#compdef useradd usermod groupadd groupmod
+
+local args shells home=${${words[(r)-D]:+b}:-d} sun redhat
+
+[[ -e /etc/redhat-release || -e /etc/mandrake-release ]]
+redhat=$?
+
+if [[ $service = user* ]]; then
+  if [[ -r /etc/shells ]]; then
+    shells=( ${${(f)"$(</etc/shells)"}:#\#*} )
+  else
+    shells=( ${(M)commands:#*/(|[abckz]|tc|ba)sh} )
+  fi
+
+  args=(
+    '(-D)-c+[comment]:comment'
+    "(-D)-${home}+[home directory]:home directory:_directories -W /"
+    '(-D)-e+[specify expiration date]:expiration date (YYYY-MM-DD)'
+    '(-D)-f+[specify inactive days]:inactive days'
+    '(-D)-g+[initial group]:initial group:_groups'
+    '(-D)-G+[supplementary groups]:supplementary group:_groups -S,'
+    "(-D)-s+[shell]:shell:( $shells /bin/false )"
+    '(-D -M)-m[create home directory]'
+    '(-D)-u[uid]:uid'
+    '(-D)-o[allow non unique uid]'
+  )
+  [[ $OSTYPE = linux* ]] && args+=(
+      '(-D -U -L)-p+[specify encrypted password]:encrypted password' )
+
+  if [[ $service = useradd ]]; then
+    (( redhat )) || args+=(
+      "(-D -k -m)-M[don't create home]"
+      '(-D)-r[create system account]'
+      "(-D)-n[don't create mirrored user]"
+    )
+    [[ $OSTYPE = linux* ]] || sun=" -s"
+    args+=(
+      "(-c -G -m -k -M -p -u -o -n -r$sun)-D[modify or display defaults]"
+      '(-D -M)-k[skeleton home directory]:skeleton directory:_directories -W /'
+      ':username'
+    )
+  else
+    (( redhat )) || args=( $args[@]
+	"(-U -p)-L[lock user's password]"
+	"(-L -p)-U[unlock user's password]"
+    )
+    args+=(
+      '-l[specify new user name]:new username'
+      ':username:_users'
+    )
+  fi
+else
+  args=( '-g+[gid]:gid' '-o[allow non unique gid]' )
+  if [[ $service = groupadd ]]; then
+    args+=( ':group name' )
+    (( redhat )) || args=( $args[@]
+      '-r[create system group]'
+      '-f[force]'
+    )
+  else
+    args+=(
+      '-n[specify new group name]:new group name'
+      ':group:_groups'
+    )
+  fi
+fi
+
+_arguments -A "-*" -s $args[@]
diff --git a/Completion/Unix/Command/_yp b/Completion/Unix/Command/_yp
new file mode 100644
index 000000000..104a0b4df
--- /dev/null
+++ b/Completion/Unix/Command/_yp
@@ -0,0 +1,112 @@
+#compdef ypcat ypmatch yppasswd ypwhich ypset ypserv ypbind yppush yppoll ypxfr domainname
+
+local curcontext="$curcontext" line state expl ret=1
+typeset -A opt_args
+
+if (( ! $+_yp_cache_maps )); then
+  _yp_cache_maps=( "${(@)${(@f)$(_call_program maps ypwhich -m)}%% *}" )
+  _yp_cache_nicks=( "${(@)${(@)${(@f)$(_call_program names ypwhich -x)}#*\"}%%\"*}" )
+  _yp_args=(
+    '(-x)-d[specify domain]:domain name' \
+    '(-x)-k[display keys]' \
+    '(-x)-t[inhibit nicknames]' \
+    '(: -d -k -t)-x[display nicknames]' \
+  )
+fi
+
+case "$service" in
+ypcat)
+  _arguments -C -s "$_yp_args[@]" ':map name:->map' && ret=0
+  ;;
+ypmatch)
+  _arguments -C -s "$_yp_args[@]" '::key map:->keymap' ':map name:->map' && 
+    ret=0
+  ;;
+yppasswd)
+  _users
+  return
+  ;;
+ypwhich)
+  _arguments -C \
+    '(-x)-d[specify domain]:domain name' \
+    '(-x -V2 -m -t)-V1[identify version 1 servers]' \
+    '(-x -V1 -m -t)-V2[identify version 2 servers]' \
+    '(: -x -V1 -V2 -m)-t[specify map name]:map name:->maponly' \
+    '(: -x -V1 -V2 -t)-m[specify map or nick name]:map or nick name:->map' \
+    '(: -d -m -t -V1 -V2)-x[display nicknames]' \
+    ':host:_hosts' && ret=0
+  ;;
+ypset)
+  _arguments -C \
+    '(-V2)-V1[bind version 1 servers]' \
+    '(-V1)-V2[bind version 2 servers]' \
+    '-d[specify domain]:domain name' \
+    '-h[set NIS binding on specified host]:host:_hosts' \
+    ':server:_hosts' && ret=0
+    ;;
+ypserv)
+  _arguments -C \
+    '-a[specify database routines]:database routines:((b\:btree d\:dbm/ndbm h\:hash))' && ret=0
+  ;;
+ypbind)
+  _arguments -C \
+    '-s[allow secure mode for ypbind]' \
+    '-S[set domain and servers]:domain:->servers' \
+    '(-ypsetme)-ypset[accept all ypset requests]' \
+    '(-ypset)-ypsetme[accept only local ypset requests]' && ret=0
+  ;;
+yppush)
+  _arguments -C \
+    '-d[specify domain]:domain name' \
+    '-v[print messages]' \
+    ':map name:->map' && ret=0
+  ;;
+yppoll)
+  _arguments -C \
+    '-d[specify domain]:domain name' \
+    '-h[ask specified yp server]:host:_hosts' \
+    ':map name:->map' && ret=0
+  ;;
+ypxfr)
+  _arguments -C \
+    '-a[specify database routines]:database routines:((b\:btree d\:dbm/ndbm h\:hash))' \
+    '-f[force transfer]' \
+    "-c[don't clear current map]" \
+    '-d[specify domain]:domain name' \
+    '-h[get map from specified host instead of master]:host:_hosts' \
+    '-C[call back]:transaction ID: :program number: :IP address: :port number' \
+    ':map name:->map' && ret=0
+  ;;
+domainname)
+  _message -e new-domains 'new domain name'
+  return 1
+  ;;
+esac
+
+[[ "$state" = keymap ]] && _message -e keys 'key'
+
+if [[ "$state" = map* ]]; then
+  if [[ $+opt_args[-t] -eq 0 && "$state" != maponly ]]; then
+    _tags maps nicknames
+  else
+    _tags maps
+  fi
+
+  while _tags; do
+    # The `-M ...' allows `pa.n<TAB>' to complete to `passwd.byname'.
+    _requested maps expl 'map name' \
+        compadd -M 'l:.|by=by l:.|=by r:|.=* r:|=*' -a \
+                _yp_cache_maps && ret=0
+    _requested nicknames expl nicknames \
+        compadd -a _yp_cache_nicks && ret=0
+    (( ret )) || return 0
+  done
+elif [[ "$state" = servers ]]; then
+  if compset -P '*,'; then
+    _wanted hosts expl server _hosts -qS, && ret=0
+  else
+    _message -e domains 'domain name'
+  fi
+fi
+
+return ret
diff --git a/Completion/Unix/Command/_zdump b/Completion/Unix/Command/_zdump
new file mode 100644
index 000000000..f96bdd764
--- /dev/null
+++ b/Completion/Unix/Command/_zdump
@@ -0,0 +1,6 @@
+#compdef zdump
+
+_arguments \
+  '-v[lowest possible]' \
+  '-c[cutoff]:cutoff year:' \
+  '*:time zone:_time_zone'