about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--Completion/Unix/Command/_gcc282
-rw-r--r--Completion/Unix/Command/_mh81
-rw-r--r--Completion/Unix/Command/_prcs191
-rw-r--r--Completion/Unix/Command/_xmlsoft6
-rw-r--r--Completion/Unix/Command/_zdump10
-rw-r--r--Completion/Unix/Type/_services1
7 files changed, 585 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 459de67ca..0d331b6aa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-08-28  Oliver Kiddle  <opk@zsh.org>
+
+	* Completion/Unix/Command/_gcc, Completion/Unix/Command/_mh,
+	Completion/Unix/Type/_services, Completion/Unix/Command/_zdump:
+	merge back various small changes from 4.1
+
 2003-08-21  Oliver Kiddle  <opk@zsh.org>
 
 	* 18956: Completion/Unix/Command/_a2ps: update for a2ps 4.13
@@ -348,6 +354,12 @@
 	* 18402: Src/builtin.c: Prevent "print -m" from crashing (it now
 	complains about a missing pattern).
 
+2003-03-26  Oliver Kiddle  <opk@zsh.org>
+
+	* 18390: Completion/Unix/Command/_prcs,
+	Completion/Unix/Command/_xmlsoft: tidy up _prcs and update
+	_xmlsoft for latest version of xsltproc
+
 2003-03-25  Wayne Davison  <wayned@users.sourceforge.net>
 
 	* 18383: Src/utils.c: Fixed zjoin() when it returns an empty
@@ -672,7 +684,7 @@
 	* unposted: Config/version.mk: version 4.0.6.
 
 	* 17542 (Thomas Stromberg <thomas@stromberg.org>):
-	Completion/Unix/Command/_mount: most systems don't have /etc/mnt.
+	Completion/Unix/Command/_mount: most systems don't have /etc/mtab
 
 2002-08-12  Peter Stephenson  <pws@csr.com>
 
@@ -1282,7 +1294,7 @@
 	Functions/Zle/bash-down-case-word,
 	Functions/Zle/bash-up-case-word,
 	Functions/Zle/bash-transpose-words,
-	Functions/Zle/bash-forward-word, Functions/Zle/bash-bacward-word,
+	Functions/Zle/bash-forward-word, Functions/Zle/bash-backward-word,
 	Functions/Zle/bash-kill-word,
 	Functions/Zle/bash-backward-kill-word:
 	Zle widgets with bash-style word delimiting.
@@ -1730,7 +1742,7 @@
 
 2001-07-18  Sven Wischnowsky  <wischnow@zsh.org>
 
-	* 15402 (Akinora Musha): Completion/Unix/Command/_cvs: add
+	* 15402 (Akinori Musha): Completion/Unix/Command/_cvs: add
 	support for -R option on BSDs
 
 2001-07-17  Oliver Kiddle  <opk@zsh.org>
diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc
new file mode 100644
index 000000000..e6c81e408
--- /dev/null
+++ b/Completion/Unix/Command/_gcc
@@ -0,0 +1,282 @@
+#compdef gcc
+
+local curcontext="$curcontext" state line ret=1 expl args
+typeset -A opt_args
+
+args=()
+case $MACHTYPE in
+m68*)
+  args=(
+    -m68000 -m68020 -m68020-40 -m68030 -m68040 -m68881
+    -mbitfield -mc68000 -mc68020 -mfpa -mnobitfield
+    -mrtd -mshort -msoft-float
+  )
+  ;;
+vax)
+  args=(
+    -mg -mgnu -munix
+  )
+  ;;
+c[1234]*)
+  args=(
+    -mc1 -mc2 -mc32 -mc34 -mc38
+    -margcount -mnoargcount
+    -mlong32 -mlong64
+    -mvolatile-cache -mvolatile-nocache
+  )
+  ;;
+amd290?0)
+  args=(
+    -m29000 -m29050 -mbw -mnbw -mdw -mndw
+    -mlarge -mnormal -msmall
+    -mkernel-registers -mno-reuse-arg-regs
+    -mno-stack-check -mno-storem-bug
+    -mreuse-arg-regs -msoft-float -mstack-check
+    -mstorem-bug -muser-registers
+  )
+  ;;
+arm)
+  args=(
+    -mapcs -m2 -m3 -m6 -mbsd -mxopen -mno-symrename
+  )
+  ;;
+m88k)
+  args=(
+    -m88000 -m88100 -m88110 -mbig-pic
+    -mcheck-zero-division -mhandle-large-shift
+    -midentify-revision -mno-check-zero-division
+    -mno-ocs-debug-info -mno-ocs-frame-position
+    -mno-optimize-arg-area -mno-serialize-volatile
+    -mno-underscores -mocs-debug-info
+    -mocs-frame-position -moptimize-arg-area
+    -mserialize-volatile -msvr3
+    -msvr4 -mtrap-large-shift -muse-div-instruction
+    -mversion-03.00 -mwarn-passed-structs
+    '-mshort-data--:maximum displacement:'
+  )
+  ;;
+rs6000|powerpc*)
+  args=(
+    '-mcpu=:CPU type:(rios1 rios2 rsc 501 603 604 power powerpc 403 common)'
+    -mpower -mno-power -mpower2 -mno-power2
+    -mpowerpc -mno-powerpc
+    -mpowerpc-gpopt -mno-powerpc-gpopt
+    -mpowerpc-gfxopt -mno-powerpc-gfxopt
+    -mnew-mnemonics -mno-new-mnemonics
+    -mfull-toc  -mminimal-toc -mno-fop-in-toc -mno-sum-in-toc
+    -msoft-float -mhard-float -mmultiple -mno-multiple
+    -mstring -mno-string -mbit-align -mno-bit-align
+    -mstrict-align -mno-strict-align -mrelocatable -mno-relocatable
+    -mtoc -mno-toc -mtraceback -mno-traceback
+    -mlittle -mlittle-endian -mbig -mbig-endian
+    -mcall-aix -mcall-sysv -mprototype
+  )
+  ;;
+romp)
+  args=(
+    -mcall-lib-mul -mfp-arg-in-fpregs -mfp-arg-in-gregs
+    -mfull-fp-blocks -mhc-struct-return -min-line-mul
+    -mminimum-fp-blocks -mnohc-struct-return
+  )
+  ;;
+mips*)
+  args=(
+    '-mcpu=:CPU type:(r2000 r3000 r4000 r4400 r4600 r6000_'
+    -mabicalls -membedded-data
+    -membedded-pic -mfp32 -mfp64 -mgas -mgp32 -mgp64
+    -mgpopt -mhalf-pic -mhard-float -mint64 -mips1
+    -mips2 -mips3 -mlong64 -mlong-calls -mmemcpy
+    -mmips-as -mmips-tfile -mno-abicalls
+    -mno-embedded-data -mno-embedded-pic
+    -mno-gpopt -mno-long-calls
+    -mno-memcpy -mno-mips-tfile -mno-rnames -mno-stats
+    -mrnames -msoft-float
+    -m4650 -msingle-float -mmad
+    -mstats -EL -EB -nocpp
+    '-G:maximum size for small section objects:'
+  )
+  ;;
+i[345]86)
+  args=(
+    -m486 -m386 -mieee-fp -mno-fancy-math-387
+    -mno-fp-ret-in-387 -msoft-float -msvr3-shlib
+    -mno-wide-multiply -mrtd -malign-double
+    '-mreg-alloc=:default register allocation order:' 
+    '-mregparm=:number of integer argument registers:'
+    '-malign-jumps=: **2 base for jump goal alignment:'
+    '-malign-loops=: **2 base for loop alignment:'
+    '-malign-functions=: **2 base for function alignment:'
+  )
+  ;;
+hppa*)
+  args=(
+    -mdisable-fpregs -mdisable-indexing -mfast-indirect-calls
+    -mgas -mjump-in-delay -mlong-millicode-calls -mno-disable-fpregs
+    -mno-disable-indexing -mno-fast-indirect-calls -mno-gas
+    -mno-jump-in-delay -mno-millicode-long-calls
+    -mno-portable-runtime -mno-soft-float -msoft-float
+    -mpa-risc-1-0 -mpa-risc-1-1 -mportable-runtime
+    '-mschedule=:code scheduling constraints:(700 7100 7100LC)'
+  )
+  ;;
+i960)
+  args=(
+    -m{ka,kb,mc,ca,cf,sa,sb}
+    -masm-compat -mclean-linkage
+    -mcode-align -mcomplex-addr -mleaf-procedures
+    -mic-compat -mic2.0-compat -mic3.0-compat
+    -mintel-asm -mno-clean-linkage -mno-code-align
+    -mno-complex-addr -mno-leaf-procedures
+    -mno-old-align -mno-strict-align -mno-tail-call
+    -mnumerics -mold-align -msoft-float -mstrict-align
+    -mtail-call
+  )
+  ;;
+sparc)
+  args=(
+    -mapp-regs -mcypress -mepilogue -mflat -mfpu -mhard-float
+    -mhard-quad-float -mno-app-regs -mno-flat -mno-fpu
+    -mno-epilogue -mno-unaligned-doubles
+    -msoft-float -msoft-quad-float
+    -msparclite -msupersparc -munaligned-doubles -mv8
+    -mmedlow -mmedany
+    -mint32 -mint64 -mlong32 -mlong64
+    -mno-stack-bias -mstack-bias
+  )
+  ;;
+alpha*)
+  args=(
+    -mfp-regs -mno-fp-regs -mno-soft-float
+    -msoft-float
+  )
+  ;;
+clipper)
+  args=(
+    -mc300 -mc400
+  )
+  ;;
+h8/300)
+  args=(
+    -mrelax -mh
+  )
+  ;;
+esac
+
+
+_arguments -C -M 'L:|-{fW}no-=-{fW} r:|[_-]=* r:|=*' \
+  "$args[@]" \
+  -c -S -E -v -a -w -C -H -P -s '(-pg)-p' '(-p)-pg' \
+  '-o:output file:_files -g \^\*.\(c\|h\|cc\|C\|cxx\)' \
+  '-x:input file language:(c objective-c c++ c-header cpp-output c++-cpp-output assembler assembler-with-cpp none)' \
+  '+e-:virtual function definitions in classes:((0\:only\ interface 1\:generate\ code))' \
+  '-d-:dump:->dump' \
+  '-g-::debugging information type:(gdb coff stabs stabs+ dwarf dwarf+ xcoff xcoff+)' \
+  '-O-::optimization level:(0 1 2 3)' \
+  '*-M-::output dependencies:((M\:only\ user\ header\ files MD\:output\ to\ file G\:treat\ missing\ header\ files\ as\ generated))' \
+  '*-A-:define assertion:' \
+  '*-D-:define macro:' \
+  '*-U-:undefine macro:' \
+  '*-Wp,-:preprocessor option:' \
+  '*-Wl,-:linker option:' \
+  '*-Xlinker:linker option:' \
+  '*-u:pretend symbol to be undefined:' \
+  '*-Wa,-:assembler option:' \
+  '*-l:library:->library' \
+  '*-L-:library search path:_files -/' \
+  '*-I-:header file search path:_files -/' \
+  '-B-:executable prefix:_files -/' \
+  '-b:target machine:' \
+  '-V:gcc version:' \
+  '-print-file-name=:library:->library' \
+  '-print-prog-name=:program:' \
+  '*-include:include file:_files -g \*.h' \
+  '*-imacros:macro input file:_files -g \*.h' \
+  '*-idirafter:second include path directory:_files -/' \
+  '*-iprefix:prefix:_files' \
+  '*-iwithprefix:second include path directory:_files -/' \
+  '*-iwithprefixbefore:main include path directory:_files -/' \
+  '*-isystem:second include path directory (system):_files -/' \
+  -nostdinc -trigraphs -undef -pipe -ansi \
+  -fallow-single-precision -fcond-mismatch -fasm \
+  -fbuiltin -fsigned-bitfields -fsigned-char \
+  -funsigned-bitfields -funsigned-char -fwritable-strings \
+  -traditional -traditional-cpp -trigraphs \
+  -fall-virtual -fdollars-in-identifiers -felide-constructors \
+  -fenum-int-equiv -fexternal-templates -ffor-scope \
+  -fhandle-signatures -fmemoize-lookups -fdefault-inline -fgnu-keywords \
+  -fnonnull-objects -foperator-names -fstrict-prototype \
+  -fthis-is-variable -nostdinc++ -traditional \
+  -fsyntax-only -pedantic -pedantic-errors \
+  -Wall -Waggregate-return -Wbad-function-cast \
+  -Wcast-align -Wcast-qual -Wchar-subscript -Wcomment \
+  -Wconversion -Wenum-clash -Werror -Wformat \
+  '-Wid-clash--:minimum identifier difference length:' \
+  -Wimplicit -Wimport -Winline \
+  '-Wlarger-than--:maximum object length:' \
+  -Wmissing-declarations \
+  -Wmissing-prototypes -Wnested-externs \
+  -Wimport -Woverloaded-virtual -Wparentheses \
+  -Wpointer-arith -Wredundant-decls -Wreorder -Wreturn-type -Wshadow \
+  -Wstrict-prototypes -Wswitch -Wsynth -Wtemplate-debugging \
+  -Wtraditional -Wtrigraphs -Wuninitialized -Wunused \
+  -Wwrite-strings \
+  -fpretend-float \
+  -print-libgcc-file-name \
+  -print-search-dirs -save-temps \
+  -fcaller-saves -fcse-follow-jumps -fcse-skip-blocks \
+  -fdelayed-branch  -fexpensive-optimizations \
+  -ffast-math -ffloat-store -fforce-addr -fforce-mem \
+  -finline-functions -fkeep-inline-functions \
+  -fdefault-inline -fdefer-pop -ffunction-cse \
+  -finline -fpeephole -fomit-frame-pointer \
+  -frerun-cse-after-loop -fschedule-insns \
+  -fschedule-insns2 -fstrength-reduce -fthread-jumps \
+  -funroll-all-loops -funroll-loops \
+  -nostartfiles -nodefaultlibs -nostdlib \
+  -static -shared -symbolic \
+  '*-fcall-saved--:register saved by function call:' \
+  '*-fcall-used--:register clobbered by function call:' \
+  '*-ffixed--:fixed register:' \
+  -finhibit-size-directive \
+  -fno-common -fno-ident -fno-gnu-linker \
+  -fpcc-struct-return -fpic -fPIC \
+  -freg-struct-return -fshared-data -fshort-enums \
+  -fshort-double -fvolatile -fvolatile-global \
+  -fverbose-asm -fpack-struct \
+  '*:input file:_files -g \*.\(\[cCmisSoak\]\|cc\|cxx\|ii\|k\[ih\]\)' && ret=0
+
+
+case "$state" in
+dump)
+  _values -s '' 'dump information' \
+    'M[only macro definitions]' \
+    'N[macro names]' \
+    'D[macro definitions and normal output]' \
+    'y[debugging information during parsing]' \
+    'r[after RTL generation]' \
+    'x[only generate RTL]' \
+    'j[after jump optimization]' \
+    's[after CSE]' \
+    'L[after loop optimization]' \
+    't[after second CSE pass]' \
+    'f[after flow analysis]' \
+    'c[after instruction combination]' \
+    'S[after first instruction scheduling pass]' \
+    'l[after local register allocation]' \
+    'g[after global register allocation]' \
+    'R[after second instruction scheduling pass]' \
+    'J[after last jump optimization]' \
+    'd[after delayed branch scheduling]' \
+    'k[after conversion from registers to stack]' \
+    'a[all dumps]' \
+    'm[print memory usage statistics]' \
+    'p[annotate assembler output]' && ret=0
+  ;;
+library)
+  _wanted libraries expl library \
+      compadd - ${^=LD_LIBRARY_PATH:-/usr/lib /usr/local/lib}/lib*.(a|so*)(:t:fr:s/lib//) && ret=0
+  ;;
+esac
+
+return ret
+
diff --git a/Completion/Unix/Command/_mh b/Completion/Unix/Command/_mh
new file mode 100644
index 000000000..77c461eaf
--- /dev/null
+++ b/Completion/Unix/Command/_mh
@@ -0,0 +1,81 @@
+#compdef dist flist flists folder folders forw comp inc mark refile repl scan show next prev packf rmf rmm pick whom mhn mhpath mhlist mhstore mhshow mhparam
+
+# Completion for all possible MH commands.
+local mymhdir=${$(_call_program mhpath mhpath + 2>/dev/null):-~/Mail}
+local mhlib=/usr/lib/mh
+
+local prev="$words[CURRENT-1]" expl
+
+if compset -P 1 -; then
+  # get list of options, which MH commands can generate themselves
+  # awk is just too icky to use for this, sorry.  send me one if
+  # you come up with it.
+  _wanted options expl option \
+      compadd - $($words[1] -help | perl -ne 'if (/^\s*-\(?(\S+)/) {
+            $n = $1;
+            $n =~ s/\)//g;
+            print $n =~ s/^\[([a-z]+)\]// ? "$n\n$1$n\n" : "$n\n";
+          }')
+  return
+elif compset -P 1 '[+@]' || [[ "$prev" = -draftfolder ]]; then
+  # Complete folder names.
+  local mhpath
+
+  if [[ $IPREFIX != '@' ]]; then
+    [[ $IPREFIX = '+' ]] || IPREFIX=+
+    mhpath=$mymhdir
+  else
+    mhpath=$(mhpath)
+  fi
+
+  _wanted files expl 'MH folder' _path_files -W mhpath -/
+elif [[ "$prev" = -(editor|(whatnow|rmm|show|more)proc) ]]; then
+  _command_names -e
+elif [[ "$prev" = -file ]]; then
+  _files
+elif [[ "$prev" = -(form|audit|filter) ]]; then
+  # Need some MH template file, which may be in our own MH directory
+  # or with the standard library.
+  local mhfpath
+  # This is the only place we need mhlib, so leave the test till here.
+  mhlib=${${$(mhparam mhlproc 2>/dev/null):h}:-/usr/lib/mh}
+  mhfpath=($mymhdir $mhlib)
+
+  _wanted files expl 'MH template file' _files -W mhfpath -g '*(.)'
+elif [[ "$prev" = -(no|)cc ]]; then
+  _wanted -C "$prev" values expl 'CC address' compadd all to cc me
+elif [[ "$prev" = -[rw]cache ]]; then
+  _wanted -C "$prev" values expl cache compadd public private never ask
+elif [[ $service = mhparam ]]; then
+  _wanted parameters expl 'MH parameter' compadd - \
+    ${${(f)"$(mhparam -all)"}%%:*}
+elif [[ $service = mhmail ]]; then
+  _user_at_host
+else
+  # Generate sequences.
+  local foldnam folddir f ret
+
+  for f in $words; do
+    [[ $f = [@+]* ]] && foldnam=$f
+  done
+  if [[ $foldnam = '+'* ]]; then
+    folddir=$mymhdir/${foldnam#+}
+  elif [[ $foldnam = '@'* ]]; then
+    folddir=$(mhpath)/${foldnam#@}
+  else
+    folddir=$(mhpath)
+    # leaving foldnam empty works here
+  fi
+
+  _tags sequences
+  while _tags; do
+    while _next_label sequences expl sequence; do
+      compadd "$expl[@]" $(mark $foldnam 2>/dev/null | awk -F: '{ print $1 }') &&
+        ret=0
+      compadd "$expl[@]" reply next cur prev first last all unseen && ret=0
+      _path_files "$expl[@]" -W folddir -g '<->' && ret=0
+    done
+    (( ret )) || return 0
+  done
+  return ret
+fi
diff --git a/Completion/Unix/Command/_prcs b/Completion/Unix/Command/_prcs
new file mode 100644
index 000000000..46e441c34
--- /dev/null
+++ b/Completion/Unix/Command/_prcs
@@ -0,0 +1,191 @@
+#compdef prcs
+
+local curcontext="$curcontext" state line subcmds ret=1
+typeset -A opt_args
+
+# lookup project names in the repository
+# (this does not handle subprojects)
+
+(( $+functions[_prcs_projects] )) ||
+_prcs_projects() {
+  local expl
+
+  _wanted prcs-projects expl 'project name' compadd "$@" - \
+      ${~opt_args[-R]:-${opt_args[--repository]:-${PRCS_REPOSITORY:-~/PRCS}}}/*(/:t)
+}	   
+
+# standard options for all subcommands 
+
+(( $+functions[_prcs_arguments] )) ||
+_prcs_arguments() {
+  _arguments -s \
+    '(-f --force)'{-f,--force}'[resolve interactive queries in some fixed way]' \
+    '(-h -H --help)'{-h,-H,--help}'[print out help]' \
+    '(-j --jobs)'{-j,--jobs=}'[spawn many child processes at once]:number:' \
+    '(-l -L --long-format --long-long-format)'{-l,--long-format}'[long format]' \
+    '(-l -L --long-format --long-long-format)'{-L,--long-long-format}'[longer format]' \
+    '(-n --no-action)--no-action[show what would happen but leave files unchanged]' \
+    '(-q --quiet)'{-q,--quiet}'[suppress normal informational messages]' \
+    "--plain-format[don't break lines at screen width]" \
+    '(-R --repository)'{-R,--repository=}'[specify the repository directory]:directory:_files -/' \
+    "$@"
+}
+
+_arguments -C \
+  '(* -)'{-h,-H,--help}'[print out help]' \
+  '(* -)--version[display program version]' \
+  '*:: :->subcmd' && ret=0
+
+if (( CURRENT == 1 )); then
+  subcmds=(
+    'admin:admin subcommand'
+    'checkin:checkin project revision'
+    'checkout:checkout project revision'
+    'config:verify configuration'
+    'delete:delete named revision of project'
+    'depopulate:remove named files from project descriptor'
+    'diff:show differences between two revisions'
+    'execute:execute a command for each file in a project'
+    'info:print information about versions of project'
+    'merge:reconcile differences between working files and another revision'
+    'package:package the project and all its revisions into packagefile'
+    'populate:add named files to project descriptor'
+    'rekey:set keywords in selected files'
+    'unpackage:unpackage project in packagefile'
+  )
+  
+  _describe -t commands 'prcs command' subcmds && ret=0
+  return ret
+fi
+
+curcontext="${curcontext%:*}-$words[1]:"
+
+case "$words[1]" in
+  admin)
+    if (( CURRENT == 2 )); then
+      subcmds=(
+	'access:set the access permissions on the repository'
+	'compress:instruct PRCS to save disk space for project'
+	'init:create a repository entry'
+	'pdelete:delete a repository entry'
+	'pinfo:list all projects in the repository'
+	'prename:rename a repository entry'
+	'rebuild:reconstruct PRCS data files in the repository'
+	'uncompress:instruct PRCS to save time in processing project'
+      )
+      _describe -t commands 'admin subcommand' subcmds
+    else
+      shift words
+      (( --CURRENT ))
+      curcontext="${curcontext%:*}-$words[1]:"
+      case "$words[1]" in
+	access|compress|init|pdelete|prename|rebuild)
+          _prcs_arguments ':project name:_prcs_projects'
+        ;;
+	pinfo)
+	  _prcs_arguments
+	;;
+	uncompress)
+          _prcs_arguments \
+	    '-i[expand the entire project immediately]' \
+            ':project name:_prcs_projects'
+        ;;
+	*)
+	  _message "unknown prcs administrative subfunction: $words[1]"
+	;;
+      esac
+    fi
+  ;;
+  checkin)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '(-s --skilled-merge)'{-s,--skilled-merge}'[turn off most of the safety features of merge]' \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  checkout)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '(-p --preserve)'{-p,--preserve}'[preserve permissions on files that are checked out]' \
+      '(-u --unlink)'{-u,--unlink}"[don't overwrite symbolic link references]" \
+      '(-P --exclude-project-file)'{-P,--exclude-project-file}"[don't checkout the project file]" \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  config)
+    _prcs_arguments
+  ;;
+  delete)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      ':project name:_prcs_projects'
+  ;;
+  depopulate)
+    _prcs_arguments \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  diff)
+    _prcs_arguments \
+      '*'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '(-k --keywords)'{-k,--keywords}'[compare keywords too]' \
+      '(-N --new)'{-N,--new}'[compare new files against empty files]' \
+      '(-P --exclude-project-file)'{-P,--exclude-project-file}"[don't diff the project file]" \
+      '--[introduce diff options]:*::diff options:=  _diff_options ${PRCS_DIFF_COMMAND:-diff}' \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  execute)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '--pre[list directories first]' \
+      '(--pipe)--all[execute command once, with all files as arguments]' \
+      '(--all)--pipe[supply file contents as the standard input]' \
+      '--match[execute command on files matching a pattern]:pattern:' \
+      '--not[execute command on files not matching a pattern]:pattern:' \
+      '--:command: _command_names -e:*::arguments: _normal' \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  info)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '--sort=[set sorting type]:sorting type:(version date)' \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  merge)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '(-s --skilled-merge)'{-s,--skilled-merge}'[turn off most of the safety features of merge]' \
+      '(-u --unlink)'{-u,--unlink}"[don't overwrite symbolic link references]" \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;
+  package)
+    _prcs_arguments \
+      '(-r --revision)'{-r+,--revision=}'[specify version of the project]:revision:' \
+      '(-z --compress)'{-z,--compress=}'[compress the output]' \
+      ':project name:_prcs_projects' \
+      ':file:_files'
+  ;;
+  populate)
+    _prcs_arguments \
+      '(-d --delete)'{-d,--delete=}'[perform optional deletions]' \
+      ':project name:_prcs_projects' \
+      '*:file or directory:_files'
+  ;;    
+  rekey)
+    _prcs_arguments \
+      '(-u --unlink)'{-u,--unlink}"[don't overwrite symbolic link references]" \
+      ':project name:_prcs_projects'
+  ;;    
+  unpackage)
+    _prcs_arguments \
+      ':file:_files' \
+      ':project name:_prcs_projects'
+  ;;
+  *)
+    _message "unknown prcs command: $words[1]"
+  ;;
+esac
diff --git a/Completion/Unix/Command/_xmlsoft b/Completion/Unix/Command/_xmlsoft
index 0f54511aa..8f2ce17fd 100644
--- a/Completion/Unix/Command/_xmlsoft
+++ b/Completion/Unix/Command/_xmlsoft
@@ -1,7 +1,7 @@
 #compdef xsltproc xmllint
 
 # xmllint: using libxml version 20503
-# xsltproc: using libxslt version 10021
+# xsltproc: using libxslt version 10027
 
 case $service in
   xsltproc)
@@ -20,7 +20,11 @@ case $service in
       '(--html)--docbook[input document is SGML docbook]' \
       '--param[pass a parameter,value pair]:name::value (xpath expression)' \
       '--stringparam[pass a parameter]:name::value' \
+      '--path[provide a set of paths for resources]:paths:_files -/' \
       '--nonet[refuse to fetch DTDs or entities over network]' \
+      '--nowrite[refuse to write to any file or resource]' \
+      '--nomkdir[refuse to create directories]' \
+      '--writesubtree[allow file write only with the path subtree]:path:_files -/' \
       '--catalogs[use SGML catalogs]' \
       '--xinclude[do XInclude processing on document input]' \
       {--profile,--norman}'[dump profiling information]' \
diff --git a/Completion/Unix/Command/_zdump b/Completion/Unix/Command/_zdump
new file mode 100644
index 000000000..5ba695529
--- /dev/null
+++ b/Completion/Unix/Command/_zdump
@@ -0,0 +1,10 @@
+#compdef zdump
+
+if (( ! $+_zoneinfo_dirs )); then
+  _zoneinfo_dirs=( /usr/{share,lib,share/lib}/{zoneinfo*,locale/TZ}(/)
+fi
+
+_arguments \
+  '-v[lowest possible]' \
+  '-c[cutoff]:cutoff year:' \
+  '*:timezone:_files -W _zoneinfo_dirs'
diff --git a/Completion/Unix/Type/_services b/Completion/Unix/Type/_services
index 837a77586..670aed05b 100644
--- a/Completion/Unix/Type/_services
+++ b/Completion/Unix/Type/_services
@@ -18,6 +18,7 @@ while _tags; do
     compadd  -a inits && ret=0
   _requested xinetd expl 'xinetd services' \
     compadd  -a xinetds && ret=0
+  (( ret )) || break
 done
 
 return $ret