xref: /freebsd/contrib/tcsh/complete.tcsh (revision 9122aeeaa60ee2a1381ea935d749194b32940e7a)
1c80476e4SDavid E. O'Brien#
2c80476e4SDavid E. O'Brien# example file using the new completion code
3c80476e4SDavid E. O'Brien#
4b2d5d167SMark Peek# Debian GNU/Linux
5b2d5d167SMark Peek# /usr/share/doc/tcsh/examples/complete.gz
6b2d5d167SMark Peek#
723338178SMark Peek# This file may be read from user's ~/.cshrc or ~/.tcshrc file by
8b2d5d167SMark Peek# decompressing it into the home directory as ~/.complete and
9b2d5d167SMark Peek# then adding the line "source ~/.complete" and maybe defining
10b2d5d167SMark Peek# some of the shell variables described below.
11b2d5d167SMark Peek#
12b2d5d167SMark Peek# Added two Debian-specific completions: dpkg and dpkg-deb (who
13b2d5d167SMark Peek# wrote them?). Changed completions of several commands. The ones
14b2d5d167SMark Peek# are evaluated if the `traditional_complete' shell variable is
15b2d5d167SMark Peek# defined.
16b2d5d167SMark Peek#
17b2d5d167SMark Peek# Debian enhancements by Vadim Vygonets <vadik@cs.huji.ac.il>.
18b2d5d167SMark Peek# Bugfixes and apt completions by Miklos Quartus <miklos.quartus@nokia.com>.
19b2d5d167SMark Peek# Cleanup by Martin A. Godisch <martin@godisch.de>.
20c80476e4SDavid E. O'Brien
21c80476e4SDavid E. O'Brienonintr -
22c80476e4SDavid E. O'Brienif ( ! $?prompt ) goto end
23c80476e4SDavid E. O'Brien
24c80476e4SDavid E. O'Brienif ( $?tcsh ) then
25c80476e4SDavid E. O'Brien  if ( $tcsh != 1 ) then
26*19d2e3deSDmitry Chagin    set rev=$tcsh:r:r
27*19d2e3deSDmitry Chagin    set rel=$tcsh:r:e
28*19d2e3deSDmitry Chagin    if ( $rev > 6 || ( $rev > 5 && $rel > 1 ) ) then
29*19d2e3deSDmitry Chagin      set _has_complete=1
30c80476e4SDavid E. O'Brien    endif
31c80476e4SDavid E. O'Brien  endif
32*19d2e3deSDmitry Chagin  unset rev rel
33c80476e4SDavid E. O'Brienendif
34c80476e4SDavid E. O'Brien
35*19d2e3deSDmitry Chaginif ( ! $?_has_complete ) goto end
36*19d2e3deSDmitry Chagin
37*19d2e3deSDmitry Chaginif ( ! $?noglob ) set noglob _unset_noglob
38*19d2e3deSDmitry Chagin
39*19d2e3deSDmitry Chagin# Old TCSH versions don't define OSTYPE.
40*19d2e3deSDmitry Chagin# Use a close approximation instead.
41*19d2e3deSDmitry Chagin
42*19d2e3deSDmitry Chaginif ( ! $?OSTYPE ) then
43*19d2e3deSDmitry Chagin  setenv OSTYPE `echo "$HOSTTYPE" | sed -e 's/^(i[3456]86|(amd|x86_)64)-//'`
44*19d2e3deSDmitry Chaginendif
45*19d2e3deSDmitry Chagin
4629301572SMark Peekif ( ! $?hosts ) set hosts
47*19d2e3deSDmitry Chagin
48*19d2e3deSDmitry Chaginforeach f ( "$HOME/."{,r,ssh/known_}hosts* \
49*19d2e3deSDmitry Chagin  /usr/local/etc/csh.hosts /etc/hosts.equiv )
50a15e6f9aSMark Peek  if ( -r "$f" ) then
51*19d2e3deSDmitry Chagin    set hosts=($hosts `sed \
52*19d2e3deSDmitry Chagin      -e 's/#.*//' \
53*19d2e3deSDmitry Chagin      -e '/^[+-]@/d' \
54*19d2e3deSDmitry Chagin      -e 's/^[-+]//' \
55*19d2e3deSDmitry Chagin      -e 's/[[:space:]].*//' \
56*19d2e3deSDmitry Chagin      -e 's/,/\n/g' "$f" \
57*19d2e3deSDmitry Chagin      | sed -e '/^[.:[:xdigit:][:space:]]*$/d'`)
58c80476e4SDavid E. O'Brien  endif
59c80476e4SDavid E. O'Brienend
60c80476e4SDavid E. O'Brienunset f
61*19d2e3deSDmitry Chagin
62*19d2e3deSDmitry Chaginif ( -r "$HOME/.netrc" ) then
63*19d2e3deSDmitry Chagin  set hosts=($hosts `awk '$1 == "machine" { print $2 }' "$HOME/.netrc"`)
64*19d2e3deSDmitry Chaginendif
65*19d2e3deSDmitry Chagin
66*19d2e3deSDmitry Chaginset hosts=(`echo $hosts | tr ' ' '\012' | sort -u`)
67*19d2e3deSDmitry Chagin
68*19d2e3deSDmitry Chaginif ( ! $#hosts ) then
69*19d2e3deSDmitry Chagin  # This is just a hint for the user.
70*19d2e3deSDmitry Chagin  set hosts=(ftp.funet.fi ftp.gnu.org ftp.uu.net)
71c80476e4SDavid E. O'Brienendif
72c80476e4SDavid E. O'Brien
73c80476e4SDavid E. O'Briencomplete ywho		n/*/\$hosts/	# argument from list in $hosts
74c80476e4SDavid E. O'Briencomplete rsh		p/1/\$hosts/ c/-/"(l n)"/   n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/
75c80476e4SDavid E. O'Briencomplete ssh		p/1/\$hosts/ c/-/"(l n)"/   n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/
76c80476e4SDavid E. O'Briencomplete xrsh		p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/
77c80476e4SDavid E. O'Briencomplete rlogin 	p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/
78c80476e4SDavid E. O'Briencomplete telnet 	p/1/\$hosts/ p/2/x:'<port>'/ n/*/n/
79c80476e4SDavid E. O'Brien
80c80476e4SDavid E. O'Briencomplete cd  		p/1/d/		# Directories only
81c80476e4SDavid E. O'Briencomplete chdir 		p/1/d/
82c80476e4SDavid E. O'Briencomplete pushd 		p/1/d/
83c80476e4SDavid E. O'Briencomplete popd 		p/1/d/
84c80476e4SDavid E. O'Briencomplete pu 		p/1/d/
85c80476e4SDavid E. O'Briencomplete po 		p/1/d/
86c80476e4SDavid E. O'Briencomplete complete 	p/1/X/		# Completions only
87c80476e4SDavid E. O'Briencomplete uncomplete	n/*/X/
88c80476e4SDavid E. O'Briencomplete exec 		p/1/c/		# Commands only
89c80476e4SDavid E. O'Briencomplete trace 		p/1/c/
90c80476e4SDavid E. O'Briencomplete strace 	p/1/c/
91c80476e4SDavid E. O'Briencomplete which		n/*/c/
92c80476e4SDavid E. O'Briencomplete where		n/*/c/
93c80476e4SDavid E. O'Briencomplete skill 		p/1/c/
94c80476e4SDavid E. O'Briencomplete dde		p/1/c/
95c80476e4SDavid E. O'Briencomplete adb		c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/
96c80476e4SDavid E. O'Briencomplete sdb		p/1/c/
97c80476e4SDavid E. O'Briencomplete dbx		c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/
98c80476e4SDavid E. O'Briencomplete xdb		p/1/c/
99c80476e4SDavid E. O'Briencomplete gdb		n/-d/d/ n/*/c/
100c80476e4SDavid E. O'Briencomplete ups		p/1/c/
101c80476e4SDavid E. O'Briencomplete set		'c/*=/f/' 'p/1/s/=' 'n/=/f/'
102c80476e4SDavid E. O'Briencomplete unset		n/*/s/
103c80476e4SDavid E. O'Briencomplete alias 		p/1/a/		# only aliases are valid
104c80476e4SDavid E. O'Briencomplete unalias	n/*/a/
105*19d2e3deSDmitry Chagincomplete xdvi 		n/*/f:*.dvi/
106c80476e4SDavid E. O'Briencomplete dvips 		n/*/f:*.dvi/
107*19d2e3deSDmitry Chagincomplete tex	 	n/*/f:*.{tex,texi}/
108c80476e4SDavid E. O'Briencomplete latex	 	n/*/f:*.{tex,ltx}/
109*19d2e3deSDmitry Chagin
110*19d2e3deSDmitry Chagincomplete su \
111*19d2e3deSDmitry Chagin  c/--/"(login fast preserve-environment command shell help version)"/ \
112*19d2e3deSDmitry Chagin  c/-/"(f l m p c s -)"/ \
113c80476e4SDavid E. O'Brien  n/{-c,--command}/c/ \
114*19d2e3deSDmitry Chagin  n@{-s,--shell}@'`cat /etc/shells`'@ \
115*19d2e3deSDmitry Chagin  n/*/u/
116*19d2e3deSDmitry Chagincomplete cc \
117*19d2e3deSDmitry Chagin  c/-[IL]/d/ \
118c80476e4SDavid E. O'Brien  c@-l@'`\ls -1 /usr/lib/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \
119c80476e4SDavid E. O'Brien  c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/
120*19d2e3deSDmitry Chagincomplete acc \
121*19d2e3deSDmitry Chagin  c/-[IL]/d/ \
122c80476e4SDavid E. O'Brien  c@-l@'`\ls -1 /usr/lang/SC1.0/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \
123c80476e4SDavid E. O'Brien  c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/
124*19d2e3deSDmitry Chagincomplete gcc \
125*19d2e3deSDmitry Chagin  c/-[IL]/d/ \
126*19d2e3deSDmitry Chagin  c/-f/"(caller-saves cse-follow-jumps delayed-branch elide-constructors \
127*19d2e3deSDmitry Chagin	expensive-optimizations float-store force-addr force-mem inline \
128*19d2e3deSDmitry Chagin	inline-functions keep-inline-functions memoize-lookups \
129*19d2e3deSDmitry Chagin	no-default-inline no-defer-pop no-function-cse omit-frame-pointer \
130*19d2e3deSDmitry Chagin	rerun-cse-after-loop schedule-insns schedule-insns2 strength-reduce \
131*19d2e3deSDmitry Chagin	thread-jumps unroll-all-loops unroll-loops syntax-only all-virtual \
132*19d2e3deSDmitry Chagin	cond-mismatch dollars-in-identifiers enum-int-equiv no-asm no-builtin \
133*19d2e3deSDmitry Chagin	no-strict-prototype signed-bitfields signed-char this-is-variable \
134*19d2e3deSDmitry Chagin	unsigned-bitfields unsigned-char writable-strings call-saved-reg \
135*19d2e3deSDmitry Chagin	call-used-reg fixed-reg no-common no-gnu-binutils nonnull-objects \
136*19d2e3deSDmitry Chagin	pcc-struct-return pic PIC shared-data short-enums short-double \
137*19d2e3deSDmitry Chagin	volatile)"/ \
138*19d2e3deSDmitry Chagin  c/-W/"(all aggregate-return cast-align cast-qual comment conversion \
139*19d2e3deSDmitry Chagin	enum-clash error format id-clash-len implicit missing-prototypes \
140*19d2e3deSDmitry Chagin	no-parentheses pointer-arith return-type shadow strict-prototypes \
141*19d2e3deSDmitry Chagin	switch uninitialized unused write-strings)"/ \
142*19d2e3deSDmitry Chagin  c/-m/"(68000 68020 68881 bitfield fpa nobitfield rtd short c68000 c68020 \
143*19d2e3deSDmitry Chagin	soft-float g gnu unix fpu no-epilogue)"/ \
144c80476e4SDavid E. O'Brien  c/-d/"(D M N)"/ \
145*19d2e3deSDmitry Chagin  c/-/"(f W vspec v vpath ansi traditional traditional-cpp trigraphs pedantic \
146*19d2e3deSDmitry Chagin	x o l c g L I D U O O2 C E H B b V M MD MM i dynamic nodtdlib static \
147*19d2e3deSDmitry Chagin	nostdinc undef)"/ \
148c80476e4SDavid E. O'Brien  c/-l/f:*.a/ \
149c80476e4SDavid E. O'Brien  n/*/f:*.{c,C,cc,o,a,s,i}/
150c80476e4SDavid E. O'Briencomplete g++ 	n/*/f:*.{C,cc,o,s,i}/
1513b6eaa7bSAndrey A. Chernovcomplete CC 	n/*/f:*.{C,cc,cpp,o,s,i}/
152*19d2e3deSDmitry Chagincomplete rm \
153*19d2e3deSDmitry Chagin  c/--/"(directory force interactive verbose recursive help version)"/ \
154*19d2e3deSDmitry Chagin  c/-/"(d f i v r R -)"/ \
155*19d2e3deSDmitry Chagin  n/*/f:^*.{c,cc,C,h,in}/
156*19d2e3deSDmitry Chagin  # Protect precious files
157c80476e4SDavid E. O'Briencomplete vi 	n/*/f:^*.[oa]/
158*19d2e3deSDmitry Chagincomplete bindkey \
159*19d2e3deSDmitry Chagin  N/-a/b/ N/-c/c/ n/-[ascr]/'x:<key-sequence>'/ \
160c80476e4SDavid E. O'Brien  n/-[svedlr]/n/ c/-[vedl]/n/ c/-/"(a s k c v e d l r)"/ \
161c80476e4SDavid E. O'Brien  n/-k/"(left right up down)"/ p/2-/b/ \
162c80476e4SDavid E. O'Brien  p/1/'x:<key-sequence or option>'/
163c80476e4SDavid E. O'Brien
164*19d2e3deSDmitry Chagincomplete find \
165*19d2e3deSDmitry Chagin  n/-fstype/"(nfs 4.2)"/ \
166*19d2e3deSDmitry Chagin  n/-name/f/ \
167*19d2e3deSDmitry Chagin  n/-type/"(c b d f p l s)"/ \
168*19d2e3deSDmitry Chagin  n/-user/u/ \
169*19d2e3deSDmitry Chagin  n/-group/g/ \
170*19d2e3deSDmitry Chagin  n/-exec/c/ \
171*19d2e3deSDmitry Chagin  n/-ok/c/ \
172*19d2e3deSDmitry Chagin  n/-cpio/f/ \
173*19d2e3deSDmitry Chagin  n/-ncpio/f/ \
174*19d2e3deSDmitry Chagin  n/-newer/f/ \
175*19d2e3deSDmitry Chagin  c/-/"(fstype name perm prune type user nouser group nogroup size inum \
176*19d2e3deSDmitry Chagin	atime mtime ctime exec ok print ls cpio ncpio newer xdev depth \
177*19d2e3deSDmitry Chagin	daystart follow maxdepth mindepth noleaf version anewer cnewer \
178*19d2e3deSDmitry Chagin	amin cmin mmin true false uid gid ilname iname ipath iregex links \
179*19d2e3deSDmitry Chagin	lname empty path regex used xtype fprint fprint0 fprintf print0 \
180*19d2e3deSDmitry Chagin	printf not a and o or)"/ \
181c80476e4SDavid E. O'Brien  n/*/d/
182c80476e4SDavid E. O'Brien
183c80476e4SDavid E. O'Briencomplete -%*		c/%/j/			# fill in the jobs builtin
184c80476e4SDavid E. O'Briencomplete {fg,bg,stop}	c/%/j/ p/1/"(%)"//
185c80476e4SDavid E. O'Brien
186c80476e4SDavid E. O'Briencomplete limit		c/-/"(h)"/ n/*/l/
187c80476e4SDavid E. O'Briencomplete unlimit	c/-/"(h)"/ n/*/l/
188c80476e4SDavid E. O'Brien
189*19d2e3deSDmitry Chagin#complete -co*	p/0/"(compress)"/	# make compress completion
190*19d2e3deSDmitry Chagin#					    # not ambiguous
191*19d2e3deSDmitry Chagin
192b2d5d167SMark Peek# "zcat" may be linked to "compress" or "gzip"
193b2d5d167SMark Peekif (-X zcat) then
194b2d5d167SMark Peek  zcat --version >& /dev/null
195b2d5d167SMark Peek  if ($status != 0) then
196b2d5d167SMark Peek    complete zcat	n/*/f:*.Z/
197b2d5d167SMark Peek  else
198b2d5d167SMark Peek    complete zcat	c/--/"(force help license quiet version)"/ \
199*19d2e3deSDmitry Chagin			c/-/"(f h L q V -)"/ \
200*19d2e3deSDmitry Chagin			n/*/f:*.{gz,Z,z,zip}/
201b2d5d167SMark Peek  endif
202b2d5d167SMark Peekendif
203c80476e4SDavid E. O'Brien
204c80476e4SDavid E. O'Briencomplete finger	c/*@/\$hosts/ n/*/u/@
205c80476e4SDavid E. O'Briencomplete ping	p/1/\$hosts/
206c80476e4SDavid E. O'Briencomplete traceroute	p/1/\$hosts/
207c80476e4SDavid E. O'Brien
208*19d2e3deSDmitry Chagincomplete {talk,ntalk,phone} \
209*19d2e3deSDmitry Chagin  p/1/'`users | tr " " "\012" | uniq`'/ \
210c80476e4SDavid E. O'Brien  n/*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/
211c80476e4SDavid E. O'Brien
212c80476e4SDavid E. O'Briencomplete ftp	c/-/"(d i g n v)"/ n/-/\$hosts/ p/1/\$hosts/ n/*/n/
213c80476e4SDavid E. O'Brien
214c80476e4SDavid E. O'Brien# this one is simple...
215c80476e4SDavid E. O'Brien#complete rcp c/*:/f/ C@[./\$~]*@f@ n/*/\$hosts/:
216c80476e4SDavid E. O'Brien# From Michael Schroeder <mlschroe@immd4.informatik.uni-erlangen.de>
217c80476e4SDavid E. O'Brien# This one will rsh to the file to fetch the list of files!
218c80476e4SDavid E. O'Briencomplete rcp 'c%*@*:%`set q=$:-0;set q="$q:s/@/ /";set q="$q:s/:/ /";set q=($q " ");rsh $q[2] -l $q[1] ls -dp $q[3]\*`%' 'c%*:%`set q=$:-0;set q="$q:s/:/ /";set q=($q " ");rsh $q[1] ls -dp $q[2]\*`%' 'c%*@%$hosts%:' 'C@[./$~]*@f@'  'n/*/$hosts/:'
219c80476e4SDavid E. O'Brien
220*19d2e3deSDmitry Chagincomplete dd \
221*19d2e3deSDmitry Chagin  c/--/"(help version)"/ c/[io]f=/f/ \
222c80476e4SDavid E. O'Brien  c/conv=*,/"(ascii ebcdic ibm block unblock \
223c80476e4SDavid E. O'Brien	      lcase notrunc ucase swab noerror sync)"/,\
224c80476e4SDavid E. O'Brien  c/conv=/"(ascii ebcdic ibm block unblock \
225c80476e4SDavid E. O'Brien	    lcase notrunc ucase swab noerror sync)"/,\
226c80476e4SDavid E. O'Brien  c/*=/x:'<number>'/ \
227c80476e4SDavid E. O'Brien  n/*/"(if of conv ibs obs bs cbs files skip file seek count)"/=
228c80476e4SDavid E. O'Brien
229c80476e4SDavid E. O'Briencomplete nslookup   p/1/x:'<host>'/ p/2/\$hosts/
230c80476e4SDavid E. O'Brien
231*19d2e3deSDmitry Chagincomplete ar \
232*19d2e3deSDmitry Chagin  c/[dmpqrtx]/"(c l o u v a b i)"/ \
233*19d2e3deSDmitry Chagin  p/1/"(d m p q r t x)"// \
234*19d2e3deSDmitry Chagin  p/2/f:*.a/ \
235*19d2e3deSDmitry Chagin  p/*/f:*.o/
236c80476e4SDavid E. O'Brien
237c80476e4SDavid E. O'Brien# these should be merged with the MH completion hacks below - jgotts
238b2d5d167SMark Peekcomplete {refile,sprev,snext,scan,pick,rmm,inc,folder,show} \
239a15e6f9aSMark Peek	    "c@+@F:$HOME/Mail/@"
240c80476e4SDavid E. O'Brien
241c80476e4SDavid E. O'Brien# these and interrupt handling from Jaap Vermeulen <jaap@sequent.com>
242c80476e4SDavid E. O'Briencomplete {rexec,rxexec,rxterm,rmterm} \
243*19d2e3deSDmitry Chagin  'p/1/$hosts/' \
244*19d2e3deSDmitry Chagin  'c/-/(l L E)/' \
245*19d2e3deSDmitry Chagin  'n/-l/u/' \
246*19d2e3deSDmitry Chagin  'n/-L/f/' \
247*19d2e3deSDmitry Chagin  'n/-E/e/' \
248*19d2e3deSDmitry Chagin  'n/*/c/'
249*19d2e3deSDmitry Chagincomplete kill \
250*19d2e3deSDmitry Chagin  'c/-/S/' \
251*19d2e3deSDmitry Chagin  'c/%/j/' \
252c80476e4SDavid E. O'Brien  'n/*/`ps -u $LOGNAME | awk '"'"'{print $1}'"'"'`/'
253c80476e4SDavid E. O'Brien
254c80476e4SDavid E. O'Brien# these from Marc Horowitz <marc@cam.ov.com>
255*19d2e3deSDmitry Chagincomplete attach \
256*19d2e3deSDmitry Chagin  'n/-mountpoint/d/' \
257*19d2e3deSDmitry Chagin  'n/-m/d/' \
258*19d2e3deSDmitry Chagin  'n/-type/(afs nfs rvd ufs)/' \
259*19d2e3deSDmitry Chagin  'n/-t/(afs nfs rvd ufs)/' \
260*19d2e3deSDmitry Chagin  'n/-user/u/' \
261*19d2e3deSDmitry Chagin  'n/-U/u/' \
262*19d2e3deSDmitry Chagin  'c/-/(verbose quiet force printpath lookup debug map nomap remap zephyr \
263*19d2e3deSDmitry Chagin	nozephyr readonly write mountpoint noexplicit explicit type \
264*19d2e3deSDmitry Chagin	mountoptions nosetuid setuid override skipfsck lock user host)/' \
265*19d2e3deSDmitry Chagin  'n/-e/f/' \
266*19d2e3deSDmitry Chagin  'n/*/()/'
267*19d2e3deSDmitry Chagincomplete hesinfo \
268*19d2e3deSDmitry Chagin  'p/1/u/' \
269*19d2e3deSDmitry Chagin  'p/2/(passwd group uid grplist pcap pobox cluster filsys sloc service)/'
270c80476e4SDavid E. O'Brien
271b2d5d167SMark Peekcomplete ./configure \
272b2d5d167SMark Peek  'c@--{prefix,exec-prefix,bindir,sbindir,libexecdir,datadir,sysconfdir,sharedstatedir,localstatedir,infodir,mandir,srcdir,x-includes,x-libraries}=*@x:<directory e.g. /usr/local>'@ \
273b2d5d167SMark Peek  'c/--cachefile=*/x:<filename>/' \
274b2d5d167SMark Peek  'c/--{enable,disable,with}-*/x:<feature>//' \
275b2d5d167SMark Peek  'c/--*=/x:<directory>//' \
276*19d2e3deSDmitry Chagin  'c/--/(prefix= exec-prefix= bindir= sbindir= libexecdir= datadir= \
277*19d2e3deSDmitry Chagin	sysconfdir= sharedstatedir= localstatedir= infodir= mandir= \
278*19d2e3deSDmitry Chagin	srcdir= x-includes= x-libraries= cachefile= enable- disable- \
279*19d2e3deSDmitry Chagin	with- help no-create quiet silent version verbose )//'
280*19d2e3deSDmitry Chagin
281*19d2e3deSDmitry Chagincomplete gs \
282*19d2e3deSDmitry Chagin  'c/-sDEVICE=/(x11 cdjmono cdj550 epson eps9high epsonc dfaxhigh dfaxlow \
283*19d2e3deSDmitry Chagin		laserjet ljet4 sparc pbm pbmraw pgm pgmraw ppm ppmraw bit)/' \
284c80476e4SDavid E. O'Brien  'c/-sOutputFile=/f/' 'c/-s/(DEVICE OutputFile)/=' \
285c80476e4SDavid E. O'Brien  'c/-d/(NODISPLAY NOPLATFONTS NOPAUSE)/' 'n/*/f/'
286c80476e4SDavid E. O'Briencomplete perl		'n/-S/c/'
287*19d2e3deSDmitry Chagincomplete sccs \
288*19d2e3deSDmitry Chagin  p/1/"(admin cdc check clean comb deledit delget delta diffs edit enter \
289*19d2e3deSDmitry Chagin	fix get help info print prs prt rmdel sccsdiff tell unedit unget \
290*19d2e3deSDmitry Chagin	val what)"/
291*19d2e3deSDmitry Chagin
292c80476e4SDavid E. O'Briencomplete printenv	'n/*/e/'
293c80476e4SDavid E. O'Briencomplete setenv		'p/1/e/' 'c/*:/f/'
294c80476e4SDavid E. O'Brien
295c80476e4SDavid E. O'Brien# these and method of setting hosts from Kimmo Suominen <kim@tac.nyc.ny.us>
296*19d2e3deSDmitry Chaginif ( -f "$HOME/.mh_profile" && -X folders ) then
297c80476e4SDavid E. O'Brien  if ( ! $?FOLDERS ) setenv FOLDERS "`folders -fast -recurse`"
298c80476e4SDavid E. O'Brien  if ( ! $?MHA )     setenv MHA     "`ali | sed -e '/^ /d' -e 's/:.*//'`"
299c80476e4SDavid E. O'Brien
300c80476e4SDavid E. O'Brien  set folders = ( $FOLDERS )
301c80476e4SDavid E. O'Brien  set mha = ( $MHA )
302c80476e4SDavid E. O'Brien
303c80476e4SDavid E. O'Brien  complete ali \
304c80476e4SDavid E. O'Brien    'c/-/(alias nolist list nonormalize normalize nouser user help)/' \
305c80476e4SDavid E. O'Brien    'n,-alias,f,'
306c80476e4SDavid E. O'Brien
307c80476e4SDavid E. O'Brien  complete anno \
308c80476e4SDavid E. O'Brien    'c/-/(component noinplace inplace nodate date text help)/' \
309c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
310*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
311c80476e4SDavid E. O'Brien
312c80476e4SDavid E. O'Brien  complete burst \
313c80476e4SDavid E. O'Brien    'c/-/(noinplace inplace noquiet quiet noverbose verbose help)/' \
314c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
315*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
316c80476e4SDavid E. O'Brien
317c80476e4SDavid E. O'Brien  complete comp \
318c80476e4SDavid E. O'Brien    'c/-/(draftfolder draftmessage nodraftfolder editor noedit file form nouse use whatnowproc nowhatnowproc help)/' \
319c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
320c80476e4SDavid E. O'Brien    'n,-whatnowproc,c,'  \
321c80476e4SDavid E. O'Brien    'n,-file,f,'\
322c80476e4SDavid E. O'Brien    'n,-form,f,'\
323*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
324c80476e4SDavid E. O'Brien
325c80476e4SDavid E. O'Brien  complete dist \
326c80476e4SDavid E. O'Brien    'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit form noinplace inplace whatnowproc nowhatnowproc help)/' \
327c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
328c80476e4SDavid E. O'Brien    'n,-whatnowproc,c,'  \
329c80476e4SDavid E. O'Brien    'n,-form,f,'\
330*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
331c80476e4SDavid E. O'Brien
332c80476e4SDavid E. O'Brien  complete folder \
333c80476e4SDavid E. O'Brien    'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \
334c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
335*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
336c80476e4SDavid E. O'Brien
337c80476e4SDavid E. O'Brien  complete folders \
338c80476e4SDavid E. O'Brien    'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \
339c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
340*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
341c80476e4SDavid E. O'Brien
342c80476e4SDavid E. O'Brien  complete forw \
343c80476e4SDavid E. O'Brien    'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit filter form noformat format noinplace inplace digest issue volume whatnowproc nowhatnowproc help)/' \
344c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
345c80476e4SDavid E. O'Brien    'n,-whatnowproc,c,'  \
346c80476e4SDavid E. O'Brien    'n,-filter,f,'\
347c80476e4SDavid E. O'Brien    'n,-form,f,'\
348*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
349c80476e4SDavid E. O'Brien
350c80476e4SDavid E. O'Brien  complete inc \
351c80476e4SDavid E. O'Brien    'c/-/(audit file noaudit nochangecur changecur file form format nosilent silent notruncate truncate width help)/' \
352c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
353c80476e4SDavid E. O'Brien    'n,-audit,f,'\
354c80476e4SDavid E. O'Brien    'n,-form,f,'
355c80476e4SDavid E. O'Brien
356c80476e4SDavid E. O'Brien  complete mark \
357c80476e4SDavid E. O'Brien    'c/-/(add delete list sequence nopublic public nozero zero help)/' \
358c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
359*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
360c80476e4SDavid E. O'Brien
361c80476e4SDavid E. O'Brien  complete mhmail \
362c80476e4SDavid E. O'Brien    'c/-/(body cc from subject help)/' \
363c80476e4SDavid E. O'Brien    'n,-cc,$mha,'  \
364c80476e4SDavid E. O'Brien    'n,-from,$mha,'  \
365c80476e4SDavid E. O'Brien    'n/*/$mha/'
366c80476e4SDavid E. O'Brien
367c80476e4SDavid E. O'Brien  complete mhpath \
368c80476e4SDavid E. O'Brien    'c/-/(help)/' \
369c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
370*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
371c80476e4SDavid E. O'Brien
372c80476e4SDavid E. O'Brien  complete msgchk \
373c80476e4SDavid E. O'Brien    'c/-/(nodate date nonotify notify help)/'
374c80476e4SDavid E. O'Brien
375c80476e4SDavid E. O'Brien  complete msh \
376c80476e4SDavid E. O'Brien    'c/-/(prompt noscan scan notopcur topcur help)/'
377c80476e4SDavid E. O'Brien
378c80476e4SDavid E. O'Brien  complete next \
379c80476e4SDavid E. O'Brien    'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \
380c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
381c80476e4SDavid E. O'Brien    'n,-moreproc,c,'  \
382c80476e4SDavid E. O'Brien    'n,-showproc,c,'  \
383c80476e4SDavid E. O'Brien    'n,-form,f,'
384c80476e4SDavid E. O'Brien
385c80476e4SDavid E. O'Brien  complete packf \
386c80476e4SDavid E. O'Brien    'c/-/(file help)/' \
387c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
388*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
389c80476e4SDavid E. O'Brien
390c80476e4SDavid E. O'Brien  complete pick \
391c80476e4SDavid E. O'Brien    'c/-/(and or not lbrace rbrace cc date from search subject to othercomponent after before datefield sequence nopublic public nozero zero nolist list help)/' \
392c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
393*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
394c80476e4SDavid E. O'Brien
395c80476e4SDavid E. O'Brien  complete prev \
396c80476e4SDavid E. O'Brien    'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \
397c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
398c80476e4SDavid E. O'Brien    'n,-moreproc,c,'  \
399c80476e4SDavid E. O'Brien    'n,-showproc,c,'  \
400c80476e4SDavid E. O'Brien    'n,-form,f,'
401c80476e4SDavid E. O'Brien
402c80476e4SDavid E. O'Brien  complete prompter \
403c80476e4SDavid E. O'Brien    'c/-/(erase kill noprepend prepend norapid rapid nodoteof doteof help)/'
404c80476e4SDavid E. O'Brien
405c80476e4SDavid E. O'Brien  complete refile \
406c80476e4SDavid E. O'Brien    'c/-/(draft nolink link nopreserve preserve src file help)/' \
407c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
408c80476e4SDavid E. O'Brien    'n,-file,f,'\
409*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
410c80476e4SDavid E. O'Brien
411c80476e4SDavid E. O'Brien  complete rmf \
412c80476e4SDavid E. O'Brien    'c/-/(nointeractive interactive help)/' \
413c80476e4SDavid E. O'Brien    'c,+,$folders,'
414c80476e4SDavid E. O'Brien
415c80476e4SDavid E. O'Brien  complete rmm \
416c80476e4SDavid E. O'Brien    'c/-/(help)/' \
417c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
418*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
419c80476e4SDavid E. O'Brien
420c80476e4SDavid E. O'Brien  complete scan \
421c80476e4SDavid E. O'Brien    'c/-/(noclear clear form format noheader header width noreverse reverse file help)/' \
422c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
423c80476e4SDavid E. O'Brien    'n,-form,f,'\
424c80476e4SDavid E. O'Brien    'n,-file,f,'\
425*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
426c80476e4SDavid E. O'Brien
427c80476e4SDavid E. O'Brien  complete send \
428c80476e4SDavid E. O'Brien    'c/-/(alias draft draftfolder draftmessage nodraftfolder filter nofilter noformat format noforward forward nomsgid msgid nopush push noverbose verbose nowatch watch width help)/' \
429c80476e4SDavid E. O'Brien    'n,-alias,f,'\
430c80476e4SDavid E. O'Brien    'n,-filter,f,'
431c80476e4SDavid E. O'Brien
432c80476e4SDavid E. O'Brien  complete show \
433c80476e4SDavid E. O'Brien    'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \
434c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
435c80476e4SDavid E. O'Brien    'n,-moreproc,c,'  \
436c80476e4SDavid E. O'Brien    'n,-showproc,c,'  \
437c80476e4SDavid E. O'Brien    'n,-form,f,'\
438*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
439c80476e4SDavid E. O'Brien
440c80476e4SDavid E. O'Brien  complete sortm \
441c80476e4SDavid E. O'Brien    'c/-/(datefield textfield notextfield limit nolimit noverbose verbose help)/' \
442c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
443*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
444c80476e4SDavid E. O'Brien
445c80476e4SDavid E. O'Brien  complete vmh \
446c80476e4SDavid E. O'Brien    'c/-/(prompt vmhproc novmhproc help)/' \
447c80476e4SDavid E. O'Brien    'n,-vmhproc,c,'
448c80476e4SDavid E. O'Brien
449c80476e4SDavid E. O'Brien  complete whatnow \
450c80476e4SDavid E. O'Brien    'c/-/(draftfolder draftmessage nodraftfolder editor noedit prompt help)/'
451c80476e4SDavid E. O'Brien
452c80476e4SDavid E. O'Brien  complete whom \
453c80476e4SDavid E. O'Brien    'c/-/(alias nocheck check draft draftfolder draftmessage nodraftfolder help)/' \
454c80476e4SDavid E. O'Brien    'n,-alias,f,'
455c80476e4SDavid E. O'Brien
456c80476e4SDavid E. O'Brien  complete plum \
457c80476e4SDavid E. O'Brien    'c/-/()/' \
458c80476e4SDavid E. O'Brien    'c,+,$folders,'  \
459*19d2e3deSDmitry Chagin    'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,'
460c80476e4SDavid E. O'Brien
461c80476e4SDavid E. O'Brien  complete mail \
462c80476e4SDavid E. O'Brien    'c/-/()/' \
463c80476e4SDavid E. O'Brien    'n/*/$mha/'
464c80476e4SDavid E. O'Brien
465c80476e4SDavid E. O'Brienendif
466c80476e4SDavid E. O'Brien
467c80476e4SDavid E. O'Brien#from Dan Nicolaescu <dann@ics.uci.edu>
468c80476e4SDavid E. O'Brienif ( $?MODULESHOME ) then
469*19d2e3deSDmitry Chagin  alias Compl_module \
470*19d2e3deSDmitry Chagin    'find ${MODULEPATH:as/:/ /} -name .version -o -name .modulea\* -prune \
471*19d2e3deSDmitry Chagin    -o -print | sed `echo "-e s@${MODULEPATH:as%:%/\*@@g -e s@%}/\*@@g"`'
472*19d2e3deSDmitry Chagin  complete module \
473*19d2e3deSDmitry Chagin    'p%1%(add load unload switch display avail use unuse update purge list \
474*19d2e3deSDmitry Chagin	  clear help initadd initrm initswitch initlist initclear)%' \
475dc86a98eSDavid E. O'Brien    'n%{unl*,sw*,inits*}%`echo "$LOADEDMODULES:as/:/ /"`%' \
476dc86a98eSDavid E. O'Brien    'n%{lo*,di*,he*,inita*,initr*}%`eval Compl_module`%' \
477*19d2e3deSDmitry Chagin    'N%{sw*,initsw*}%`eval Compl_module`%' \
478*19d2e3deSDmitry Chagin    'C%-%(-append)%' \
479*19d2e3deSDmitry Chagin    'n%{use,unu*,av*}%d%' \
480*19d2e3deSDmitry Chagin    'n%-append%d%' \
481c80476e4SDavid E. O'Brien    'C%[^-]*%`eval Compl_module`%'
482c80476e4SDavid E. O'Brienendif
483c80476e4SDavid E. O'Brien
4843b6eaa7bSAndrey A. Chernov# from George Cox
48529301572SMark Peekcomplete acroread	'p/*/f:*.{pdf,PDF}/'
4863b6eaa7bSAndrey A. Chernovcomplete apachectl	'c/*/(start stop restart fullstatus status graceful \
4873b6eaa7bSAndrey A. Chernov			      configtest help)/'
4883b6eaa7bSAndrey A. Chernovcomplete appletviewer	'p/*/f:*.class/'
4893b6eaa7bSAndrey A. Chernovcomplete bison		'c/--/(debug defines file-prefix= fixed-output-files \
4903b6eaa7bSAndrey A. Chernov				help name-prefix= no-lines no-parser output= \
4913b6eaa7bSAndrey A. Chernov				token-table verbose version yacc)/' \
492*19d2e3deSDmitry Chagin			'c/-/(b d h k l n o p t v y V)/' \
493*19d2e3deSDmitry Chagin			'n/-b/f/' 'n/-o/f/' 'n/-p/f/'
49423338178SMark Peekcomplete bzcat		c/--/"(help test quiet verbose license version)"/ \
49523338178SMark Peek			c/-/"(h t L V -)"/ n/*/f:*.{bz2,tbz}/
49623338178SMark Peekcomplete bunzip2	c/--/"(help keep force test stdout quiet verbose \
497*19d2e3deSDmitry Chagin				license version)"/ \
498*19d2e3deSDmitry Chagin			c/-/"(h k f t c q v L V -)"/ \
49923338178SMark Peek			n/*/f:*.{bz2,tbz}/
50023338178SMark Peekcomplete bzip2		c/--/"(help decompress compress keep force test \
50123338178SMark Peek				stdout quiet verbose license version small)"/ \
50223338178SMark Peek			c/-/"(h d z k f t c q v L V s 1 2 3 4 5 6 7 8 9 -)"/ \
50323338178SMark Peek			n/{-d,--decompress}/f:*.{bz2,tbz}/ \
50423338178SMark Peek			N/{-d,--decompress}/f:*.{bz2,tbz}/ n/*/f:^*.{bz2,tbz}/
5053b6eaa7bSAndrey A. Chernovcomplete c++		'p/*/f:*.{c++,cxx,c,cc,C,cpp}/'
5063b6eaa7bSAndrey A. Chernovcomplete co		'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@'
5073b6eaa7bSAndrey A. Chernovcomplete crontab	'n/-u/u/'
5083b6eaa7bSAndrey A. Chernovcomplete camcontrol	'p/1/(cmd debug defects devlist eject inquiry \
509*19d2e3deSDmitry Chagin			      modepage negotiate periphlist rescan reset \
510*19d2e3deSDmitry Chagin			      start stop tags tur)/'
5113b6eaa7bSAndrey A. Chernovcomplete ctlinnd	'p/1/(addhist allow begin cancel changegroup \
512*19d2e3deSDmitry Chagin			      checkfile drop feedinfo flush flushlogs go \
513*19d2e3deSDmitry Chagin			      hangup logmode mode name newgroup param pause \
514*19d2e3deSDmitry Chagin			      readers refile reject reload renumber reserve \
515*19d2e3deSDmitry Chagin			      rmgroup send shutdown kill throttle trace \
516*19d2e3deSDmitry Chagin			      xabort xexec)/'
5173b6eaa7bSAndrey A. Chernovcomplete cvs		'c/--/(help help-commands help-synonyms)/' \
518*19d2e3deSDmitry Chagin			'p/1/(add admin annotate checkout commit diff edit \
519*19d2e3deSDmitry Chagin			      editors export history import init log login \
520*19d2e3deSDmitry Chagin			      logout rdiff release remove rtag status tag \
521*19d2e3deSDmitry Chagin			      unedit update watch watchers)/' \
522*19d2e3deSDmitry Chagin			'n/-a/(edit unedit commit all none)/' \
523*19d2e3deSDmitry Chagin			'n/watch/(on off add remove)/'
524a15e6f9aSMark Peekcomplete svn	 	'C@file:///@`'"${HOME}/etc/tcsh/complete.d/svn"'`@@' \
525a15e6f9aSMark Peek			'n@ls@(file:/// svn+ssh:// svn://)@@' \
526*19d2e3deSDmitry Chagin			'n@help@(add blame cat checkout cleanup commit copy \
527*19d2e3deSDmitry Chagin				  delete export help import info list ls \
528*19d2e3deSDmitry Chagin				  lock log merge mkdir move propdel propedit \
529*19d2e3deSDmitry Chagin				  propget proplist propset resolved revert \
530*19d2e3deSDmitry Chagin				  status switch unlock update)@' \
531*19d2e3deSDmitry Chagin			'p@1@(add blame cat checkout cleanup commit copy \
532*19d2e3deSDmitry Chagin			      delete export help import info list ls lock \
533*19d2e3deSDmitry Chagin			      log merge mkdir move propdel propedit propget \
534*19d2e3deSDmitry Chagin			      proplist propset resolved revert status switch \
535*19d2e3deSDmitry Chagin			      unlock update)@'
536*19d2e3deSDmitry Chagin
5373b6eaa7bSAndrey A. Chernovcomplete cxx		'p/*/f:*.{c++,cxx,c,cc,C,cpp}/'
5383b6eaa7bSAndrey A. Chernovcomplete detex		'p/*/f:*.tex/'
5393b6eaa7bSAndrey A. Chernovcomplete edquota	'n/*/u/'
5403b6eaa7bSAndrey A. Chernovcomplete exec		'p/1/c/'
5413b6eaa7bSAndrey A. Chernovcomplete ghostview	'p/*/f:*.ps/'
5423b6eaa7bSAndrey A. Chernovcomplete gv		'p/*/f:*.ps/'
543*19d2e3deSDmitry Chagincomplete ifconfig	'p@1@`ifconfig -l`@' \
544*19d2e3deSDmitry Chagin			'n/*/(range phase link netmask mtu vlandev vlan \
545*19d2e3deSDmitry Chagin			    metric mediaopt down delete broadcast arp debug)/'
5463b6eaa7bSAndrey A. Chernovcomplete imake		'c/-I/d/'
5473b6eaa7bSAndrey A. Chernovcomplete ipfw		'p/1/(flush add delete list show zero)/' \
5483b6eaa7bSAndrey A. Chernov			'n/add/(allow permit accept pass deny drop reject \
5493b6eaa7bSAndrey A. Chernov				reset count skipto num divert port tee port)/'
5503b6eaa7bSAndrey A. Chernovcomplete javac		'p/*/f:*.java/'
5513b6eaa7bSAndrey A. Chernovcomplete ldif2ldbm	'n/-i/f:*.ldif/'
5523b6eaa7bSAndrey A. Chernovcomplete libtool	'c/--mode=/(compile execute finish install link \
553*19d2e3deSDmitry Chagin				    uninstall)/' \
554*19d2e3deSDmitry Chagin			'c/--/(config debug dry-run features finish help \
555*19d2e3deSDmitry Chagin				quiet silent version mode=)/'
5563b6eaa7bSAndrey A. Chernovcomplete libtoolize	'c/--/(automake copy debug dry-run force help ltdl \
5573b6eaa7bSAndrey A. Chernov				ltdl-tar version)/'
5583b6eaa7bSAndrey A. Chernovcomplete links		'c/-/(assume-codepage async-dns download-dir \
5593b6eaa7bSAndrey A. Chernov			      format-cache-size ftp-proxy help http-proxy \
5603b6eaa7bSAndrey A. Chernov			      max-connections max-connections-to-host \
5613b6eaa7bSAndrey A. Chernov			      memory-cache-size receive-timeout retries \
5623b6eaa7bSAndrey A. Chernov			      unrestartable-receive-timeout version)/'
5633b6eaa7bSAndrey A. Chernovcomplete natd		c/-/'(alias_address config deny_incoming dynamic \
5643b6eaa7bSAndrey A. Chernov			      inport interface log log_denied log_facility \
5653b6eaa7bSAndrey A. Chernov			      outport outport port pptpalias proxy_only \
5663b6eaa7bSAndrey A. Chernov			      proxy_rule redirect_address redirect_port \
5673b6eaa7bSAndrey A. Chernov			      reverse same_ports unregistered_only use_sockets \
568*19d2e3deSDmitry Chagin			      verbose)'/ \
569*19d2e3deSDmitry Chagin			'n@-interface@`ifconfig -l`@'
5703b6eaa7bSAndrey A. Chernovcomplete netstat	'n@-I@`ifconfig -l`@'
5713b6eaa7bSAndrey A. Chernovcomplete objdump	'c/--/(adjust-vma= all-headers architecture= \
5723b6eaa7bSAndrey A. Chernov			      archive-headers debugging demangle disassemble \
5733b6eaa7bSAndrey A. Chernov			      disassemble-all disassemble-zeroes dynamic-reloc \
5743b6eaa7bSAndrey A. Chernov			      dynamic-syms endian= file-headers full-contents \
5753b6eaa7bSAndrey A. Chernov			      headers help info line-numbers no-show-raw-insn \
576*19d2e3deSDmitry Chagin			      prefix-addresses private-headers reloc \
577*19d2e3deSDmitry Chagin			      section-headers section=source stabs \
578*19d2e3deSDmitry Chagin			      start-address= stop-address= syms target= \
579*19d2e3deSDmitry Chagin			      version wide)/' \
5803b6eaa7bSAndrey A. Chernov			'c/-/(a h i f C d D p r R t T x s S l w)/'
5813b6eaa7bSAndrey A. Chernovcomplete xmodmap	'c/-/(display help grammar verbose quiet n e pm pk \
5823b6eaa7bSAndrey A. Chernov			      pke pp)/'
5833b6eaa7bSAndrey A. Chernovcomplete lynx		'c/-/(accept_all_cookies anonymous assume_charset= \
584*19d2e3deSDmitry Chagin			      assume_local_charset= assume_unrec_charset= \
585*19d2e3deSDmitry Chagin			      auth= base book buried_news cache= case cfg= \
586*19d2e3deSDmitry Chagin			      child cookie_file= cookies core crawl \
587*19d2e3deSDmitry Chagin			      debug_partial display= dump editor= emacskeys \
588*19d2e3deSDmitry Chagin			      enable_scrollback error_file= force_html \
589*19d2e3deSDmitry Chagin			      force_secure forms_options from ftp get_data \
590*19d2e3deSDmitry Chagin			      head help hiddenlinks= historical homepage= \
591*19d2e3deSDmitry Chagin			      image_links index= ismap link= localhost \
592*19d2e3deSDmitry Chagin			      mime_header minimal newschunksize= \
593*19d2e3deSDmitry Chagin			      newsmaxchunk= nobrowse nocc nocolor \
594*19d2e3deSDmitry Chagin			      nofilereferer nolist nolog nopause noprint \
595*19d2e3deSDmitry Chagin			      noredir noreferer nostatus number_links \
596*19d2e3deSDmitry Chagin			      partial partial_thres pauth= popup post_data \
597*19d2e3deSDmitry Chagin			      preparsed print pseudo_inlines raw realm \
598*19d2e3deSDmitry Chagin			      reload restrictions= resubmit_posts rlogin \
599*19d2e3deSDmitry Chagin			      selective show_cursor soft_dquotes source \
600*19d2e3deSDmitry Chagin			      stack_dump startfile_ok tagsoup telnet term= \
601*19d2e3deSDmitry Chagin			      tlog trace traversal underscore useragent= \
602*19d2e3deSDmitry Chagin			      validate verbose version vikeys width=)/' \
603*19d2e3deSDmitry Chagin			'c/(http|ftp)/$URLS/'
6043b6eaa7bSAndrey A. Chernovcomplete gmake		'c/{--directory=,--include-dir=}/d/' \
6053b6eaa7bSAndrey A. Chernov			'c/{--assume-new,--assume-old,--makefile,--new-file,--what-if,--file}/f/' \
6063b6eaa7bSAndrey A. Chernov			'c/--/(assume-new= assume-old= debug directory= \
6073b6eaa7bSAndrey A. Chernov			      dry-run environment-overrides file= help \
6083b6eaa7bSAndrey A. Chernov			      ignore-errors include-dir= jobs[=N] just-print \
609*19d2e3deSDmitry Chagin			      keep-going load-average[=N] makefile= \
610*19d2e3deSDmitry Chagin			      max-load[=N] new-file= no-builtin-rules \
611*19d2e3deSDmitry Chagin			      no-keep-going no-print-directory old-file= \
612*19d2e3deSDmitry Chagin			      print-data-base print-directory question quiet \
613*19d2e3deSDmitry Chagin			      recon silent stop touch version \
614*19d2e3deSDmitry Chagin			      warn-undefined-variables what-if=)/' \
6153b6eaa7bSAndrey A. Chernov			'n@*@`cat -s GNUMakefile Makefile makefile |& sed -n -e "/No such file/d" -e "s/^\([A-Za-z0-9-]*\):.*/\1/p"`@' \
616*19d2e3deSDmitry Chagin			'n/=/f/' \
617*19d2e3deSDmitry Chagin			'n/-f/f/'
6183b6eaa7bSAndrey A. Chernovcomplete mixer		p/1/'(vol bass treble synth pcm speaker mic cd mix \
6193b6eaa7bSAndrey A. Chernov			      pcm2 rec igain ogain line1 line2 line3)'/ \
6203b6eaa7bSAndrey A. Chernov			p@2@'`mixer $:-1 | awk \{\ print\ \$7\ \}`'@
6213b6eaa7bSAndrey A. Chernov
622*19d2e3deSDmitry Chagincomplete mpg123		'c/--/(2to1 4to1 8bit aggressive au audiodevice auth \
623*19d2e3deSDmitry Chagin			      buffer cdr check doublespeed equalizer frames \
624*19d2e3deSDmitry Chagin			      gain halfspeed headphones left lineout list \
625*19d2e3deSDmitry Chagin			      mix mono proxy quiet random rate reopen resync \
626*19d2e3deSDmitry Chagin			      right scale shuffle single0 single1 skip \
627*19d2e3deSDmitry Chagin			      speaker stdout stereo test verbose wav)/'
6283b6eaa7bSAndrey A. Chernovcomplete mysqladmin	'n/*/(create drop extended-status flush-hosts \
629*19d2e3deSDmitry Chagin			      flush-logs flush-status flush-tables \
630*19d2e3deSDmitry Chagin			      flush-privileges kill password ping \
631*19d2e3deSDmitry Chagin			      processlist reload refresh shutdown status \
632*19d2e3deSDmitry Chagin			      variables version)/'
633*19d2e3deSDmitry Chagin
634*19d2e3deSDmitry Chagincomplete mutt \
635*19d2e3deSDmitry Chagin  "c@-f=@F:${HOME}/Mail/@" \
6363b6eaa7bSAndrey A. Chernov  n/-a/f/ \
637*19d2e3deSDmitry Chagin  n/-F/f/ \
638*19d2e3deSDmitry Chagin  n/-H/f/ \
6393b6eaa7bSAndrey A. Chernov  n/-s/x:'<subject line>'/ \
6403b6eaa7bSAndrey A. Chernov  n/-e/x:'<command>'/ \
641a15e6f9aSMark Peek  n@-b@'`cat "${HOME}/.muttrc-alias" | awk '"'"'{print $2 }'"'"\`@ \
642a15e6f9aSMark Peek  n@-c@'`cat "${HOME}/.muttrc-alias" | awk '"'"'{print $2 }'"'"\`@ \
643a15e6f9aSMark Peek  n@*@'`cat "${HOME}/.muttrc-alias" | awk '"'"'{print $2 }'"'"\`@
644*19d2e3deSDmitry Chagin
6453b6eaa7bSAndrey A. Chernovcomplete ndc	'n/*/(status dumpdb reload stats trace notrace \
6463b6eaa7bSAndrey A. Chernov		    querylog start stop restart )/'
647*19d2e3deSDmitry Chagin
64823338178SMark Peekcomplete nm \
64923338178SMark Peek  'c/--radix=/x:<radix: _o_ctal _d_ecimal he_x_adecimal>/' \
650b2d5d167SMark Peek  'c/--target=/x:<bfdname>/' \
651b2d5d167SMark Peek  'c/--format=/(bsd sysv posix)/n/' \
652b2d5d167SMark Peek  'c/--/(debugsyms extern-only demangle dynamic print-armap \
653b2d5d167SMark Peek	  print-file-name numeric-sort no-sort reverse-sort \
654b2d5d167SMark Peek	  size-sort undefined-only portability target= radix= \
655b2d5d167SMark Peek	  format= defined-only\ line-numbers no-demangle version \
656b2d5d167SMark Peek	  help)//' \
657b2d5d167SMark Peek  'n/*/f:^*.{h,c,cc,s,S}/'
658*19d2e3deSDmitry Chagin
6593b6eaa7bSAndrey A. Chernovcomplete nmap	'n@-e@`ifconfig -l`@' 'p/*/$hostnames/'
6603b6eaa7bSAndrey A. Chernovcomplete perldoc 	'n@*@`\ls -1 /usr/libdata/perl/5.*/pod | sed s%\\.pod.\*\$%%`@'
6613b6eaa7bSAndrey A. Chernovcomplete postfix    'n/*/(start stop reload abort flush check)/'
6629ccc37e3SMark Peekcomplete postmap	'n/1/(hash: regexp:)/' 'c/hash:/f/' 'c/regexp:/f/'
6633b6eaa7bSAndrey A. Chernovcomplete rcsdiff	'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@'
6643b6eaa7bSAndrey A. Chernovcomplete X		'c/-/(I a ac allowMouseOpenFail allowNonLocalModInDev \
6653b6eaa7bSAndrey A. Chernov		    allowNonLocalXvidtune ar1 ar2 audit auth bestRefresh \
6663b6eaa7bSAndrey A. Chernov		    bgamma bpp broadcast bs c cc class co core deferglyphs \
6673b6eaa7bSAndrey A. Chernov		    disableModInDev disableVidMode displayID dpi dpms f fc \
6683b6eaa7bSAndrey A. Chernov		    flipPixels fn fp gamma ggamma help indirect kb keeptty \
6693b6eaa7bSAndrey A. Chernov		    ld lf logo ls nolisten string noloadxkb nolock nopn \
6703b6eaa7bSAndrey A. Chernov		    once p pn port probeonly query quiet r rgamma s \
6713b6eaa7bSAndrey A. Chernov		    showconfig sp su t terminate to tst v verbose version \
6723b6eaa7bSAndrey A. Chernov		    weight wm x xkbdb xkbmap)/'
6733b6eaa7bSAndrey A. Chernovcomplete users      'c/--/(help version)/' 'p/1/x:"<accounting_file>"/'
6743b6eaa7bSAndrey A. Chernovcomplete vidcontrol	'p/1/(132x25 132x30 132x43 132x50 132x60 40x25 80x25 \
6753b6eaa7bSAndrey A. Chernov		    80x30 80x43 80x50 80x60 EGA_80x25 EGA_80x43 \
6763b6eaa7bSAndrey A. Chernov		    VESA_132x25 VESA_132x30 VESA_132x43 VESA_132x50 \
6773b6eaa7bSAndrey A. Chernov		    VESA_132x60 VESA_800x600 VGA_320x200 VGA_40x25 \
6783b6eaa7bSAndrey A. Chernov		    VGA_80x25 VGA_80x30 VGA_80x50 VGA_80x60)/'
6793b6eaa7bSAndrey A. Chernovcomplete vim	'n/*/f:^*.[oa]/'
6803b6eaa7bSAndrey A. Chernovcomplete where	'n/*/c/'
6813b6eaa7bSAndrey A. Chernovcomplete which	'n/*/c/'
6823b6eaa7bSAndrey A. Chernovcomplete wmsetbg	'c/-/(display D S a b c d e m p s t u w)/' \
6833b6eaa7bSAndrey A. Chernov		    'c/--/(back-color center colors dither help match \
6843b6eaa7bSAndrey A. Chernov		    maxscale parse scale smooth tile update-domain \
6853b6eaa7bSAndrey A. Chernov		    update-wmaker version workspace)/'
6863b6eaa7bSAndrey A. Chernovcomplete xdb	'p/1/c/'
6873b6eaa7bSAndrey A. Chernovcomplete xdvi	'c/-/(allowshell debug display expert gamma hushchars \
6883b6eaa7bSAndrey A. Chernov		    hushchecksums hushspecials install interpreter keep \
6893b6eaa7bSAndrey A. Chernov		    margins nogrey noinstall nomakepk noscan paper safer \
6903b6eaa7bSAndrey A. Chernov		    shrinkbuttonn thorough topmargin underlink version)/' \
6913b6eaa7bSAndrey A. Chernov		    'n/-paper/(a4 a4r a5 a5r)/' 'p/*/f:*.dvi/'
6923b6eaa7bSAndrey A. Chernovcomplete xlock	'c/-/(allowaccess allowroot debug description \
6933b6eaa7bSAndrey A. Chernov		    echokeys enablesaver grabmouse grabserver hide inroot \
6943b6eaa7bSAndrey A. Chernov		    install inwindow mono mousemotion nolock remote \
6953b6eaa7bSAndrey A. Chernov		    resetsaver sound timeelapsed use3d usefirst verbose \
6963b6eaa7bSAndrey A. Chernov		    wireframe background batchcount bg bitmap both3d \
6973b6eaa7bSAndrey A. Chernov		    count cycles delay delta3d display dpmsoff \
6983b6eaa7bSAndrey A. Chernov		    dpmsstandby dpmssuspend endCmd erasedelay erasemode \
6993b6eaa7bSAndrey A. Chernov		    erasetime fg font foreground geometry help \
7003b6eaa7bSAndrey A. Chernov		    icongeometry info invalid left3d lockdelay logoutCmd \
7013b6eaa7bSAndrey A. Chernov		    mailCmd mailIcon message messagefile messagefont \
7023b6eaa7bSAndrey A. Chernov		    messagesfile mode name ncolors nice nomailIcon none3d \
7033b6eaa7bSAndrey A. Chernov		    parent password planfont program resources right3d \
7043b6eaa7bSAndrey A. Chernov		    saturation size startCmd timeout username validate \
7053b6eaa7bSAndrey A. Chernov		    version visual)/' 'n/-mode/(ant atlantis ball bat \
7063b6eaa7bSAndrey A. Chernov		    blot bouboule bounce braid bubble bubble3d bug cage \
7073b6eaa7bSAndrey A. Chernov		    cartoon clock coral crystal daisy dclock decay deco \
7083b6eaa7bSAndrey A. Chernov		    demon dilemma discrete drift eyes fadeplot flag flame \
7093b6eaa7bSAndrey A. Chernov		    flow forest galaxy gears goop grav helix hop hyper \
7103b6eaa7bSAndrey A. Chernov		    ico ifs image invert julia kaleid kumppa lament laser \
7113b6eaa7bSAndrey A. Chernov		    life life1d life3d lightning lisa lissie loop lyapunov \
7123b6eaa7bSAndrey A. Chernov		    mandelbrot marquee matrix maze moebius morph3d \
7133b6eaa7bSAndrey A. Chernov		    mountain munch nose pacman penrose petal pipes puzzle \
7143b6eaa7bSAndrey A. Chernov		    pyro qix roll rotor rubik shape sierpinski slip sphere \
7153b6eaa7bSAndrey A. Chernov		    spiral spline sproingies stairs star starfish strange \
7163b6eaa7bSAndrey A. Chernov		    superquadrics swarm swirl tetris thornbird triangle \
7173b6eaa7bSAndrey A. Chernov		    tube turtle vines voters wator wire world worm xjack \
7183b6eaa7bSAndrey A. Chernov		    blank bomb random)/'
7193b6eaa7bSAndrey A. Chernovcomplete xfig	'c/-/(display)/' 'p/*/f:*.fig/'
7203b6eaa7bSAndrey A. Chernovcomplete wget 	c/--/"(accept= append-output= background cache= \
7213b6eaa7bSAndrey A. Chernov		    continue convert-links cut-dirs= debug \
7223b6eaa7bSAndrey A. Chernov		    delete-after directory-prefix= domains= \
7233b6eaa7bSAndrey A. Chernov		    dont-remove-listing dot-style= exclude-directories= \
7243b6eaa7bSAndrey A. Chernov		    exclude-domains= execute= follow-ftp \
7253b6eaa7bSAndrey A. Chernov		    force-directories force-html glob= header= help \
7263b6eaa7bSAndrey A. Chernov		    http-passwd= http-user= ignore-length \
7273b6eaa7bSAndrey A. Chernov		    include-directories= input-file= level= mirror \
7283b6eaa7bSAndrey A. Chernov		    no-clobber no-directories no-host-directories \
7293b6eaa7bSAndrey A. Chernov		    no-host-lookup no-parent non-verbose \
7303b6eaa7bSAndrey A. Chernov		    output-document= output-file= passive-ftp \
7313b6eaa7bSAndrey A. Chernov		    proxy-passwd= proxy-user= proxy= quiet quota= \
7323b6eaa7bSAndrey A. Chernov		    recursive reject= relative retr-symlinks save-headers \
7333b6eaa7bSAndrey A. Chernov		    server-response span-hosts spider timeout= \
7343b6eaa7bSAndrey A. Chernov		    timestamping tries= user-agent= verbose version wait=)"/
7353b6eaa7bSAndrey A. Chernov
7363b6eaa7bSAndrey A. Chernov# these from Tom Warzeka <tom@waz.cc>
737c80476e4SDavid E. O'Brien
738c80476e4SDavid E. O'Brien# this one works but is slow and doesn't descend into subdirectories
739c80476e4SDavid E. O'Brien# complete	cd	C@[./\$~]*@d@ \
740c80476e4SDavid E. O'Brien#			p@1@'`\ls -1F . $cdpath | grep /\$ | sort -u`'@ n@*@n@
741c80476e4SDavid E. O'Brien
742c80476e4SDavid E. O'Brienif ( -r /etc/shells ) then
743c80476e4SDavid E. O'Brien    complete setenv	p@1@e@ n@DISPLAY@\$hosts@: n@SHELL@'`cat /etc/shells`'@
744c80476e4SDavid E. O'Brienelse
745c80476e4SDavid E. O'Brien    complete setenv	p@1@e@ n@DISPLAY@\$hosts@:
746c80476e4SDavid E. O'Brienendif
747c80476e4SDavid E. O'Briencomplete unsetenv	n/*/e/
748c80476e4SDavid E. O'Brien
749b2d5d167SMark Peekset _maildir = /var/mail
750a15e6f9aSMark Peekif (-r "$HOME/.mailrc") then
751c80476e4SDavid E. O'Brien    complete mail	c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \
752a15e6f9aSMark Peek		    "c@+@F:$HOME/Mail@" C@[./\$~]@f@ n/-s/x:'<subject>'/ \
753c80476e4SDavid E. O'Brien		    n@-u@T:$_maildir@ n/-f/f/ \
754a15e6f9aSMark Peek		    n@*@'`sed -n s/alias//p "$HOME/.mailrc" | \
755a15e6f9aSMark Peek		    tr -s " " "	" | cut -f 2`'@
756c80476e4SDavid E. O'Brienelse
757c80476e4SDavid E. O'Brien    complete mail	c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \
758a15e6f9aSMark Peek		    "c@+@F:$HOME/Mail@" C@[./\$~]@f@ n/-s/x:'<subject>'/ \
759c80476e4SDavid E. O'Brien		    n@-u@T:$_maildir@ n/-f/f/ n/*/u/
760c80476e4SDavid E. O'Brienendif
7616767bd61SMark Peekunset _maildir
762c80476e4SDavid E. O'Brien
76329301572SMark Peekif (! $?MANPATH) then
7646767bd61SMark Peek    if (-r /usr/share/man) then
76529301572SMark Peek	setenv MANPATH /usr/share/man:
7666767bd61SMark Peek    else
76729301572SMark Peek	setenv MANPATH /usr/man:
7686767bd61SMark Peek    endif
76929301572SMark Peekendif
77029301572SMark Peek
771b2d5d167SMark Peekif ($?traditional_complete) then
77229301572SMark Peek    # use of $MANPATH from Dan Nicolaescu <dann@ics.uci.edu>
77329301572SMark Peek    # use of 'find' adapted from Lubomir Host <host8@kepler.fmph.uniba.sk>
7746767bd61SMark Peek    complete man \
77529301572SMark Peek	'n@1@`set q = "$MANPATH:as%:%/man1 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.1.\*\$%%`@'\
77629301572SMark Peek	'n@2@`set q = "$MANPATH:as%:%/man2 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.2.\*\$%%`@'\
77729301572SMark Peek	'n@3@`set q = "$MANPATH:as%:%/man3 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.3.\*\$%%`@'\
77829301572SMark Peek	'n@4@`set q = "$MANPATH:as%:%/man4 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.4.\*\$%%`@'\
77929301572SMark Peek	'n@5@`set q = "$MANPATH:as%:%/man5 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.5.\*\$%%`@'\
78029301572SMark Peek	'n@6@`set q = "$MANPATH:as%:%/man6 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.6.\*\$%%`@'\
78129301572SMark Peek	'n@7@`set q = "$MANPATH:as%:%/man7 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.7.\*\$%%`@'\
78229301572SMark Peek	'n@8@`set q = "$MANPATH:as%:%/man8 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.8.\*\$%%`@'\
78329301572SMark Peek	'n@9@`set q = "$MANPATH:as%:%/man9 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.9.\*\$%%`@'\
78429301572SMark Peek	'n@0@`set q = "$MANPATH:as%:%/man0 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.0.\*\$%%`@'\
78529301572SMark Peek	'n@n@`set q = "$MANPATH:as%:%/mann %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.n.\*\$%%`@'\
78629301572SMark Peek	'n@o@`set q = "$MANPATH:as%:%/mano %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.o.\*\$%%`@'\
78729301572SMark Peek	'n@l@`set q = "$MANPATH:as%:%/manl %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.l.\*\$%%`@'\
78829301572SMark Peek	'n@p@`set q = "$MANPATH:as%:%/manp %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.p.\*\$%%`@'\
78929301572SMark Peek	c@-@"(- f k M P s S t)"@ n@-f@c@ n@-k@x:'<keyword>'@ n@-[MP]@d@   \
79029301572SMark Peek	'N@-[MP]@`\ls -1 $:-1/man? |& sed -n s%\\..\\+\$%%p`@'            \
79129301572SMark Peek	'n@-[sS]@`\ls -1 $MANPATH:as%:% % |& sed -n s%^man%%p | sort -u`@'\
79229301572SMark Peek	'n@*@`find $MANPATH:as%:% % \( -type f -o -type l \) -printf "%f " |& sed -e "s%find: .*: No such file or directory%%" -e "s%\([^\.]\+\)\.\([^ ]*\) %\1 %g"`@'
79329301572SMark Peek	#n@*@c@ # old way -- commands only
794b2d5d167SMark Peekelse
795b2d5d167SMark Peek    complete man	    n@1@'`\ls -1 /usr/man/man1 | sed s%\\.1.\*\$%%`'@ \
796b2d5d167SMark Peek			n@2@'`\ls -1 /usr/man/man2 | sed s%\\.2.\*\$%%`'@ \
797b2d5d167SMark Peek			n@3@'`\ls -1 /usr/man/man3 | sed s%\\.3.\*\$%%`'@ \
798b2d5d167SMark Peek			n@4@'`\ls -1 /usr/man/man4 | sed s%\\.4.\*\$%%`'@ \
799b2d5d167SMark Peek			n@5@'`\ls -1 /usr/man/man5 | sed s%\\.5.\*\$%%`'@ \
800b2d5d167SMark Peek			n@6@'`\ls -1 /usr/man/man6 | sed s%\\.6.\*\$%%`'@ \
801b2d5d167SMark Peek			n@7@'`\ls -1 /usr/man/man7 | sed s%\\.7.\*\$%%`'@ \
802b2d5d167SMark Peek			n@8@'`\ls -1 /usr/man/man8 | sed s%\\.8.\*\$%%`'@ \
803b2d5d167SMark Peekn@9@'`[ -r /usr/man/man9 ] && \ls -1 /usr/man/man9 | sed s%\\.9.\*\$%%`'@ \
804b2d5d167SMark Peekn@0@'`[ -r /usr/man/man0 ] && \ls -1 /usr/man/man0 | sed s%\\.0.\*\$%%`'@ \
805b2d5d167SMark Peekn@new@'`[ -r /usr/man/mann ] && \ls -1 /usr/man/mann | sed s%\\.n.\*\$%%`'@ \
806b2d5d167SMark Peekn@old@'`[ -r /usr/man/mano ] && \ls -1 /usr/man/mano | sed s%\\.o.\*\$%%`'@ \
807b2d5d167SMark Peekn@local@'`[ -r /usr/man/manl ] && \ls -1 /usr/man/manl | sed s%\\.l.\*\$%%`'@ \
808b2d5d167SMark Peekn@public@'`[ -r /usr/man/manp ]&& \ls -1 /usr/man/manp | sed s%\\.p.\*\$%%`'@ \
809b2d5d167SMark Peek	    c/-/"(- f k P s t)"/ n/-f/c/ n/-k/x:'<keyword>'/ n/-P/d/ \
810b2d5d167SMark Peek	    N@-P@'`\ls -1 $:-1/man? | sed s%\\..\*\$%%`'@ n/*/c/
811b2d5d167SMark Peekendif
812c80476e4SDavid E. O'Brien
813c80476e4SDavid E. O'Briencomplete ps	        c/-t/x:'<tty>'/ c/-/"(a c C e g k l S t u v w x)"/ \
814c80476e4SDavid E. O'Brien		    n/-k/x:'<kernel>'/ N/-k/x:'<core_file>'/ n/*/x:'<PID>'/
815c80476e4SDavid E. O'Briencomplete compress	c/-/"(c f v b)"/ n/-b/x:'<max_bits>'/ n/*/f:^*.Z/
816c80476e4SDavid E. O'Briencomplete uncompress	c/-/"(c f v)"/                        n/*/f:*.Z/
817c80476e4SDavid E. O'Brien
8183b6eaa7bSAndrey A. Chernovcomplete uuencode	p/1/f/ p/2/x:'<decode_pathname>'/ n/*/n/
8193b6eaa7bSAndrey A. Chernovcomplete uudecode	c/-/"(f)"/ n/-f/f:*.{uu,UU}/ p/1/f:*.{uu,UU}/ n/*/n/
8203b6eaa7bSAndrey A. Chernov
821c80476e4SDavid E. O'Briencomplete xhost	c/[+-]/\$hosts/ n/*/\$hosts/
82229301572SMark Peekcomplete xpdf	c/-/"(z g remote raise quit cmap rgb papercolor       \
82329301572SMark Peek			  eucjp t1lib freetype ps paperw paperh level1    \
82429301572SMark Peek			  upw fullscreen cmd q v h help)"/                \
82529301572SMark Peek		    n/-z/x:'<zoom (-5 .. +5) or "page" or "width">'/      \
82629301572SMark Peek		    n/-g/x:'<geometry>'/ n/-remote/x:'<name>'/            \
82729301572SMark Peek		    n/-rgb/x:'<number>'/ n/-papercolor/x:'<color>'/       \
82829301572SMark Peek		    n/-{t1lib,freetype}/x:'<font_type>'/                  \
82929301572SMark Peek		    n/-ps/x:'<PS_file>'/ n/-paperw/x:'<width>'/           \
83029301572SMark Peek		    n/-paperh/x:'<height>'/ n/-upw/x:'<password>'/        \
83129301572SMark Peek		    n/-/f:*.{pdf,PDF}/                                    \
83229301572SMark Peek		    N/-{z,g,remote,rgb,papercolor,t1lib,freetype,ps,paperw,paperh,upw}/f:*.{pdf,PDF}/ \
83329301572SMark Peek		    N/-/x:'<page>'/ p/1/f:*.{pdf,PDF}/ p/2/x:'<page>'/
834c80476e4SDavid E. O'Brien
835b2d5d167SMark Peekcomplete tcsh	c/-D*=/'x:<value>'/ c/-D/'x:<name>'/ \
836b2d5d167SMark Peek		    c/-/"(b c d D e f F i l m n q s t v V x X -version)"/ \
837b2d5d167SMark Peek		    n/-c/c/ n/{-l,--version}/n/ n/*/'f:*.{,t}csh'/
838b2d5d167SMark Peek
839b2d5d167SMark Peekcomplete rpm	c/--/"(query verify nodeps nofiles nomd5 noscripts    \
840b2d5d167SMark Peek		    nogpg nopgp install upgrade freshen erase allmatches  \
841b2d5d167SMark Peek		    notriggers repackage test rebuild recompile initdb    \
842b2d5d167SMark Peek		    rebuilddb addsign resign querytags showrc setperms    \
843b2d5d167SMark Peek		    setugids all file group package querybynumber qf      \
844b2d5d167SMark Peek		    triggeredby whatprovides whatrequires changelog       \
845b2d5d167SMark Peek		    configfiles docfiles dump filesbypkg info last list   \
846b2d5d167SMark Peek		    provides queryformat requires scripts state triggers  \
847b2d5d167SMark Peek		    triggerscripts allfiles badreloc excludepath checksig \
848b2d5d167SMark Peek		    excludedocs force hash ignoresize ignorearch ignoreos \
849b2d5d167SMark Peek		    includedocs justdb noorder oldpackage percent prefix  \
850b2d5d167SMark Peek		    relocate replace-files replacepkgs buildroot clean    \
851b2d5d167SMark Peek		    nobuild rmsource rmspec short-circuit sign target     \
852b2d5d167SMark Peek		    help version quiet rcfile pipe dbpath root specfile)"/\
853b2d5d167SMark Peek		    c/-/"(q V K i U F e ba bb bp bc bi bl bs ta tb tp tc  \
854b2d5d167SMark Peek		    ti tl ts a f g p c d l R s h ? v vv -)"/              \
855b2d5d167SMark Peek	    n/{-f,--file}/f/ n/{-g,--group}/g/ n/--pipe/c/ n/--dbpath/d/  \
856b2d5d167SMark Peek	    n/--querybynumber/x:'<number>'/ n/--triggeredby/x:'<package>'/\
857b2d5d167SMark Peek	    n/--what{provides,requires}/x:'<capability>'/ n/--root/d/     \
858b2d5d167SMark Peek	    n/--{qf,queryformat}/x:'<format>'/ n/--buildroot/d/           \
859b2d5d167SMark Peek	    n/--excludepath/x:'<oldpath>'/  n/--prefix/x:'<newpath>'/     \
860b2d5d167SMark Peek	    n/--relocate/x:'<oldpath=newpath>'/ n/--target/x:'<platform>'/\
861b2d5d167SMark Peek	    n/--rcfile/x:'<filelist>'/ n/--specfile/x:'<specfile>'/       \
862b2d5d167SMark Peek	    n/{-[iUFep],--{install,upgrade,freshen,erase,package}}/f:*.rpm/
863b2d5d167SMark Peek
864c80476e4SDavid E. O'Brien# these conform to the latest GNU versions available at press time ...
865c80476e4SDavid E. O'Brien# updates by John Gotts <jgotts@engin.umich.edu>
8666767bd61SMark Peekif (-X emacs) then
8676767bd61SMark Peek  # TW note:  if your version of GNU Emacs supports the "--version" option,
8686767bd61SMark Peek  #           uncomment this line and comment the next to automatically
869b2d5d167SMark Peek  #           detect the version, else set "_emacs_ver" to your version.
87029301572SMark Peek  #set _emacs_ver=`emacs --version | sed -e 's%GNU Emacs %%' -e q | cut -d . -f1-2`
871b2d5d167SMark Peek  set _emacs_ver=21.3
8726767bd61SMark Peek  set _emacs_dir=`which emacs | sed s%/bin/emacs%%`
8736767bd61SMark Peek  complete emacs	c/--/"(batch terminal display no-windows no-init-file \
8746767bd61SMark Peek			   user debug-init unibyte multibyte version help \
8756767bd61SMark Peek			   no-site-file funcall load eval insert kill)"/ \
8766767bd61SMark Peek		    c/-/"(t d nw q u f l -)"/ c/+/x:'<line_number>'/ \
8776767bd61SMark Peek		    n/{-t,--terminal}/x:'<terminal>'/ n/{-d,--display}/x:'<display>'/ \
8786767bd61SMark Peek		    n/{-u,--user}/u/ n/{-f,--funcall}/x:'<lisp_function>'/ \
8796767bd61SMark Peek		    n@{-l,--load}@F:$_emacs_dir/share/emacs/$_emacs_ver/lisp@ \
8806767bd61SMark Peek		    n/--eval/x:'<expression>'/ n/--insert/f/ n/*/f:^*[\#~]/
8816767bd61SMark Peek  unset _emacs_ver _emacs_dir
8826767bd61SMark Peekendif
883c80476e4SDavid E. O'Brien
884c80476e4SDavid E. O'Briencomplete gzcat	c/--/"(force help license quiet version)"/ \
885c80476e4SDavid E. O'Brien		    c/-/"(f h L q V -)"/ n/*/f:*.{gz,Z,z,zip}/
886c80476e4SDavid E. O'Briencomplete gzip	c/--/"(stdout to-stdout decompress uncompress \
887c80476e4SDavid E. O'Brien		    force help list license no-name quiet recurse \
888c80476e4SDavid E. O'Brien		    suffix test verbose version fast best)"/ \
889c80476e4SDavid E. O'Brien		    c/-/"(c d f h l L n q r S t v V 1 2 3 4 5 6 7 8 9 -)"/\
890c80476e4SDavid E. O'Brien		    n/{-S,--suffix}/x:'<file_name_suffix>'/ \
891c80476e4SDavid E. O'Brien		    n/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \
892c80476e4SDavid E. O'Brien		    N/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \
893c80476e4SDavid E. O'Brien		    n/*/f:^*.{gz,Z,z,zip,taz,tgz}/
894c80476e4SDavid E. O'Briencomplete {gunzip,ungzip} c/--/"(stdout to-stdout force help list license \
895c80476e4SDavid E. O'Brien		    no-name quiet recurse suffix test verbose version)"/ \
896c80476e4SDavid E. O'Brien		    c/-/"(c f h l L n q r S t v V -)"/ \
897c80476e4SDavid E. O'Brien		    n/{-S,--suffix}/x:'<file_name_suffix>'/ \
898c80476e4SDavid E. O'Brien		    n/*/f:*.{gz,Z,z,zip,taz,tgz}/
899c80476e4SDavid E. O'Briencomplete zgrep	c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\
900c80476e4SDavid E. O'Brien		    c/-/"(A b B c C e f h i l n s v V w x)"/ \
901c80476e4SDavid E. O'Brien		    p/1/x:'<limited_regular_expression>'/ N/-*e/f/ \
902c80476e4SDavid E. O'Brien		    n/-*e/x:'<limited_regular_expression>'/ n/-*f/f/ n/*/f/
903c80476e4SDavid E. O'Briencomplete zegrep	c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\
904c80476e4SDavid E. O'Brien		    c/-/"(A b B c C e f h i l n s v V w x)"/ \
905c80476e4SDavid E. O'Brien		    p/1/x:'<full_regular_expression>'/ N/-*e/f/ \
906c80476e4SDavid E. O'Brien		    n/-*e/x:'<full_regular_expression>'/ n/-*f/f/ n/*/f/
907c80476e4SDavid E. O'Briencomplete zfgrep	c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\
908c80476e4SDavid E. O'Brien		    c/-/"(A b B c C e f h i l n s v V w x)"/ \
909c80476e4SDavid E. O'Brien		    p/1/x:'<fixed_string>'/ N/-*e/f/ \
910c80476e4SDavid E. O'Brien		    n/-*e/x:'<fixed_string>'/ n/-*f/f/ n/*/f/
911c80476e4SDavid E. O'Briencomplete znew	c/-/"(f t v 9 P K)"/ n/*/f:*.Z/
912c80476e4SDavid E. O'Briencomplete zmore	n/*/f:*.{gz,Z,z,zip}/
913c80476e4SDavid E. O'Briencomplete zfile	n/*/f:*.{gz,Z,z,zip,taz,tgz}/
914c80476e4SDavid E. O'Briencomplete ztouch	n/*/f:*.{gz,Z,z,zip,taz,tgz}/
915c80476e4SDavid E. O'Briencomplete zforce	n/*/f:^*.{gz,tgz}/
916c80476e4SDavid E. O'Brien
917b2d5d167SMark Peekcomplete dcop 'p/1/`$:0`/ /' \
918b2d5d167SMark Peek    'p/2/`$:0 $:1 | awk \{print\ \$1\}`/ /' \
919b2d5d167SMark Peek    'p/3/`$:0 $:1 $:2 | sed "s%.* \(.*\)(.*%\1%"`/ /'
920b2d5d167SMark Peek
921b2d5d167SMark Peek
922c80476e4SDavid E. O'Briencomplete grep	c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\
923c80476e4SDavid E. O'Brien		    c/--/"(extended-regexp fixed-regexp basic-regexp \
924c80476e4SDavid E. O'Brien		    regexp file ignore-case word-regexp line-regexp \
925c80476e4SDavid E. O'Brien		    no-messages revert-match version help byte-offset \
926c80476e4SDavid E. O'Brien		    line-number with-filename no-filename quiet silent \
927c80476e4SDavid E. O'Brien		    text directories recursive files-without-match \
928c80476e4SDavid E. O'Brien		    files-with-matches count before-context after-context \
929c80476e4SDavid E. O'Brien		    context binary unix-byte-offsets)"/ \
930c80476e4SDavid E. O'Brien		    c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \
931c80476e4SDavid E. O'Brien			    v w x)"/ \
932c80476e4SDavid E. O'Brien		    p/1/x:'<limited_regular_expression>'/ N/-*e/f/ \
933c80476e4SDavid E. O'Brien		    n/-*e/x:'<limited_regular_expression>'/ n/-*f/f/ n/*/f/
934c80476e4SDavid E. O'Briencomplete egrep	c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\
935c80476e4SDavid E. O'Brien		    c/--/"(extended-regexp fixed-regexp basic-regexp \
936c80476e4SDavid E. O'Brien		    regexp file ignore-case word-regexp line-regexp \
937c80476e4SDavid E. O'Brien		    no-messages revert-match version help byte-offset \
938c80476e4SDavid E. O'Brien		    line-number with-filename no-filename quiet silent \
939c80476e4SDavid E. O'Brien		    text directories recursive files-without-match \
940c80476e4SDavid E. O'Brien		    files-with-matches count before-context after-context \
941c80476e4SDavid E. O'Brien		    context binary unix-byte-offsets)"/ \
942c80476e4SDavid E. O'Brien		    c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \
943c80476e4SDavid E. O'Brien			    v w x)"/ \
944c80476e4SDavid E. O'Brien		    p/1/x:'<full_regular_expression>'/ N/-*e/f/ \
945c80476e4SDavid E. O'Brien		    n/-*e/x:'<full_regular_expression>'/ n/-*f/f/ n/*/f/
946c80476e4SDavid E. O'Briencomplete fgrep	c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\
947c80476e4SDavid E. O'Brien		    c/--/"(extended-regexp fixed-regexp basic-regexp \
948c80476e4SDavid E. O'Brien		    regexp file ignore-case word-regexp line-regexp \
949c80476e4SDavid E. O'Brien		    no-messages revert-match version help byte-offset \
950c80476e4SDavid E. O'Brien		    line-number with-filename no-filename quiet silent \
951c80476e4SDavid E. O'Brien		    text directories recursive files-without-match \
952c80476e4SDavid E. O'Brien		    files-with-matches count before-context after-context \
953c80476e4SDavid E. O'Brien		    context binary unix-byte-offsets)"/ \
954c80476e4SDavid E. O'Brien		    c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \
955c80476e4SDavid E. O'Brien			    v w x)"/ \
956c80476e4SDavid E. O'Brien		    p/1/x:'<fixed_string>'/ N/-*e/f/ \
957c80476e4SDavid E. O'Brien		    n/-*e/x:'<fixed_string>'/ n/-*f/f/ n/*/f/
958c80476e4SDavid E. O'Brien
95929301572SMark Peekcomplete sed	c/--/"(quiet silent version help expression file)"/   \
96029301572SMark Peek		    c/-/"(n V e f -)"/ n/{-e,--expression}/x:'<script>'/  \
96129301572SMark Peek		    n/{-f,--file}/f:*.sed/ N/-{e,f,-{file,expression}}/f/ \
96229301572SMark Peek		    n/-/x:'<script>'/ N/-/f/ p/1/x:'<script>'/ p/2/f/
96329301572SMark Peek
964c80476e4SDavid E. O'Briencomplete users	c/--/"(help version)"/ p/1/x:'<accounting_file>'/
965c80476e4SDavid E. O'Briencomplete who	c/--/"(heading idle count mesg message writable help \
966c80476e4SDavid E. O'Brien		    version)"/ c/-/"(H i m q s T w u -)"/ \
967c80476e4SDavid E. O'Brien		    p/1/x:'<accounting_file>'/ n/am/"(i)"/ n/are/"(you)"/
968c80476e4SDavid E. O'Brien
969c80476e4SDavid E. O'Briencomplete chown	c/--/"(changes dereference no-dereference silent \
970c80476e4SDavid E. O'Brien		    quiet reference recursive verbose help version)"/ \
971c80476e4SDavid E. O'Brien		    c/-/"(c f h R v -)"/ C@[./\$~]@f@ c/*[.:]/g/ \
9723b6eaa7bSAndrey A. Chernov		    n/-/u/: p/1/u/: n/*/f/
973c80476e4SDavid E. O'Briencomplete chgrp	c/--/"(changes no-dereference silent quiet reference \
974c80476e4SDavid E. O'Brien		    recursive verbose help version)"/ \
975c80476e4SDavid E. O'Brien		    c/-/"(c f h R v -)"/ n/-/g/ p/1/g/ n/*/f/
976c80476e4SDavid E. O'Briencomplete chmod	c/--/"(changes silent quiet verbose reference \
977c80476e4SDavid E. O'Brien		    recursive help version)"/ c/-/"(c f R v)"/
978c80476e4SDavid E. O'Briencomplete df		c/--/"(all block-size human-readable si inodes \
979c80476e4SDavid E. O'Brien		    kilobytes local megabytes no-sync portability sync \
980c80476e4SDavid E. O'Brien		    type print-type exclude-type help version)"/ \
981c80476e4SDavid E. O'Brien		    c/-/"(a H h i k l m P T t v x)"/
982c80476e4SDavid E. O'Briencomplete du		c/--/"(all block-size bytes total dereference-args \
983c80476e4SDavid E. O'Brien		    human-readable si kilobytes count-links dereference \
984c80476e4SDavid E. O'Brien		    megabytes separate-dirs summarize one-file-system \
985c80476e4SDavid E. O'Brien		    exclude-from exclude max-depth help version"/ \
986c80476e4SDavid E. O'Brien		    c/-/"(a b c D H h k L l m S s X x)"/
987c80476e4SDavid E. O'Brien
988c80476e4SDavid E. O'Briencomplete cat	c/--/"(number-nonblank number squeeze-blank show-all \
989c80476e4SDavid E. O'Brien		    show-nonprinting show-ends show-tabs help version)"/ \
990c80476e4SDavid E. O'Brien		    c/-/"(A b E e n s T t u v -)"/ n/*/f/
991c80476e4SDavid E. O'Briencomplete mv		c/--/"(backup force interactive update verbose suffix \
992c80476e4SDavid E. O'Brien		    version-control help version)"/ \
993c80476e4SDavid E. O'Brien		    c/-/"(b f i S u V v -)"/ \
994c80476e4SDavid E. O'Brien		    n/{-S,--suffix}/x:'<suffix>'/ \
995c80476e4SDavid E. O'Brien		    n/{-V,--version-control}/"(t numbered nil existing \
996c80476e4SDavid E. O'Brien		    never simple)"/ n/-/f/ N/-/d/ p/1/f/ p/2/d/ n/*/f/
997c80476e4SDavid E. O'Briencomplete cp		c/--/"(archive backup no-dereference force \
998c80476e4SDavid E. O'Brien		    interactive link preserve parents sparse recursive \
999c80476e4SDavid E. O'Brien		    symbolic-link suffix update verbose version-control \
1000c80476e4SDavid E. O'Brien		    one-file-system help version)"/ \
1001c80476e4SDavid E. O'Brien		    c/-/"(a b d f i l P p R r S s u V v x -)"/ \
1002c80476e4SDavid E. O'Brien		    n/-*r/d/ n/{-S,--suffix}/x:'<suffix>'/ \
1003c80476e4SDavid E. O'Brien		    n/{-V,--version-control}/"(t numbered nil existing \
1004c80476e4SDavid E. O'Brien		    never simple)"/ n/-/f/ N/-/d/ p/1/f/ p/2/d/ n/*/f/
1005c80476e4SDavid E. O'Briencomplete ln		c/--/"(backup directory force no-dereference \
1006c80476e4SDavid E. O'Brien		    interactive symbolic suffix verbose version-control \
1007c80476e4SDavid E. O'Brien		    help version)"/ \
1008c80476e4SDavid E. O'Brien		    c/-/"(b d F f i n S s V v -)"/ \
1009c80476e4SDavid E. O'Brien		    n/{-S,--suffix}/x:'<suffix>'/ \
1010c80476e4SDavid E. O'Brien		    n/{-V,--version-control}/"(t numbered nil existing \
1011*19d2e3deSDmitry Chagin		    never simple)"/ n/-*/f/ N/-*/x:'<link_name>'/ \
1012c80476e4SDavid E. O'Brien		    p/1/f/ p/2/x:'<link_name>'/
1013c80476e4SDavid E. O'Briencomplete touch	c/--/"(date reference time help version)"/ \
1014c80476e4SDavid E. O'Brien		    c/-/"(a c d f m r t -)"/ \
1015c80476e4SDavid E. O'Brien		    n/{-d,--date}/x:'<date_string>'/ \
1016c80476e4SDavid E. O'Brien		    c/--time/"(access atime mtime modify use)"/ \
1017c80476e4SDavid E. O'Brien		    n/{-r,--file}/f/ n/-t/x:'<time_stamp>'/ n/*/f/
1018c80476e4SDavid E. O'Briencomplete mkdir	c/--/"(mode parents verbose help version)"/ \
1019c80476e4SDavid E. O'Brien		    c/-/"(p m -)"/ \
1020c80476e4SDavid E. O'Brien		    n/{-m,--mode}/x:'<mode>'/ n/*/d/
1021c80476e4SDavid E. O'Briencomplete rmdir	c/--/"(ignore-fail-on-non-empty parents verbose help \
1022c80476e4SDavid E. O'Brien		    version)"/ c/-/"(p -)"/ n/*/d/
1023b2d5d167SMark Peekcomplete env 	'c/*=/f/' 'p/1/e/=/' 'p/2/c/'
1024c80476e4SDavid E. O'Brien
1025c80476e4SDavid E. O'Briencomplete tar	c/-[Acru]*/"(b B C f F g G h i l L M N o P \
1026c80476e4SDavid E. O'Brien		    R S T v V w W X z Z)"/ \
1027c80476e4SDavid E. O'Brien		    c/-[dtx]*/"( B C f F g G i k K m M O p P \
1028c80476e4SDavid E. O'Brien		    R s S T v w x X z Z)"/ \
1029c80476e4SDavid E. O'Brien		    p/1/"(A c d r t u x -A -c -d -r -t -u -x \
1030c80476e4SDavid E. O'Brien		    --catenate --concatenate --create --diff --compare \
1031c80476e4SDavid E. O'Brien		    --delete --append --list --update --extract --get \
1032c80476e4SDavid E. O'Brien		    --help --version)"/ \
1033c80476e4SDavid E. O'Brien		    c/--/"(catenate concatenate create diff compare \
1034c80476e4SDavid E. O'Brien		    delete append list update extract get atime-preserve \
1035c80476e4SDavid E. O'Brien		    block-size read-full-blocks directory checkpoint file \
1036c80476e4SDavid E. O'Brien		    force-local info-script new-volume-script incremental \
1037c80476e4SDavid E. O'Brien		    listed-incremental dereference ignore-zeros \
1038c80476e4SDavid E. O'Brien		    ignore-failed-read keep-old-files starting-file \
1039c80476e4SDavid E. O'Brien		    one-file-system tape-length modification-time \
1040c80476e4SDavid E. O'Brien		    multi-volume after-date newer old-archive portability \
1041c80476e4SDavid E. O'Brien		    to-stdout same-permissions preserve-permissions \
1042c80476e4SDavid E. O'Brien		    absolute-paths preserve record-number remove-files \
1043c80476e4SDavid E. O'Brien		    same-order preserve-order same-owner sparse \
1044c80476e4SDavid E. O'Brien		    files-from null totals verbose label version \
1045c80476e4SDavid E. O'Brien		    interactive confirmation verify exclude exclude-from \
1046c80476e4SDavid E. O'Brien		    compress uncompress gzip ungzip use-compress-program \
1047c80476e4SDavid E. O'Brien		    block-compress help version)"/ \
1048c80476e4SDavid E. O'Brien		    c/-/"(b B C f F g G h i k K l L m M N o O p P R s S \
1049c80476e4SDavid E. O'Brien		    T v V w W X z Z 0 1 2 3 4 5 6 7 -)"/ \
1050b2d5d167SMark Peek		    C@/dev@f@ \
1051c80476e4SDavid E. O'Brien		    n/-c*f/x:'<new_tar_file, device_file, or "-">'/ \
105223338178SMark Peek		    n/{-[Adrtux]j*f,--file}/f:*.{tar.bz2,tbz}/ \
1053b2d5d167SMark Peek		    n/{-[Adrtux]z*f,--file}/f:*.{tar.gz,tgz}/ \
1054b2d5d167SMark Peek		    n/{-[Adrtux]Z*f,--file}/f:*.{tar.Z,taz}/ \
1055b2d5d167SMark Peek		    n/{-[Adrtux]*f,--file}/f:*.tar/ \
105623338178SMark Peek		    N/{-xj*f,--file}/'`tar -tjf $:-1`'/ \
1057b2d5d167SMark Peek		    N/{-xz*f,--file}/'`tar -tzf $:-1`'/ \
1058b2d5d167SMark Peek		    N/{-xZ*f,--file}/'`tar -tZf $:-1`'/ \
1059c80476e4SDavid E. O'Brien		    N/{-x*f,--file}/'`tar -tf $:-1`'/ \
1060c80476e4SDavid E. O'Brien		    n/--use-compress-program/c/ \
1061c80476e4SDavid E. O'Brien		    n/{-b,--block-size}/x:'<block_size>'/ \
1062c80476e4SDavid E. O'Brien		    n/{-V,--label}/x:'<volume_label>'/ \
1063c80476e4SDavid E. O'Brien		    n/{-N,--{after-date,newer}}/x:'<date>'/ \
1064c80476e4SDavid E. O'Brien		    n/{-L,--tape-length}/x:'<tape_length_in_kB>'/ \
1065c80476e4SDavid E. O'Brien		    n/{-C,--directory}/d/ \
1066c80476e4SDavid E. O'Brien		    N/{-C,--directory}/'`\ls $:-1`'/ \
1067c80476e4SDavid E. O'Brien		    n/-[0-7]/"(l m h)"/
1068c80476e4SDavid E. O'Brien
1069a15e6f9aSMark Peekswitch ( "$OSTYPE" )
1070*19d2e3deSDmitry Chagincase linux:
107123338178SMark Peek  # Linux filesystems
107223338178SMark Peek  complete  mount	c/-/"(a f F h l n o r s t U v V w)"/ n/-[hV]/n/ \
107323338178SMark Peek		    n/-o/x:'<options>'/ n/-t/x:'<vfstype>'/ \
107423338178SMark Peek		    n/-L/x:'<label>'/ n/-U/x:'<uuid>'/ \
107523338178SMark Peek		    n@*@'`grep -v "^#" /etc/fstab | tr -s " " "	 " | cut -f 2`'@
107623338178SMark Peek  complete umount	c/-/"(a h n r t v V)"/ n/-t/x:'<vfstype>'/ \
107723338178SMark Peek		      n/*/'`mount | cut -d " " -f 3`'/
1078a15e6f9aSMark Peek  breaksw
1079*19d2e3deSDmitry Chagincase sunos*:
1080*19d2e3deSDmitry Chagincase solaris:
108123338178SMark Peek  # Solaris filesystems
1082a15e6f9aSMark Peek  complete  mount	c/-/"(a F m o O p r v V)"/ n/-p/n/ n/-v/n/ \
1083a15e6f9aSMark Peek		    n/-o/x:'<FSType_options>'/ \
1084a15e6f9aSMark Peek		    n@-F@'`\ls -1 /usr/lib/fs`'@ \
1085a15e6f9aSMark Peek		    n@*@'`grep -v "^#" /etc/vfstab | tr -s " " "	 " | cut -f 3`'@
1086a15e6f9aSMark Peek  complete umount	c/-/"(a o V)"/ n/-o/x:'<FSType_options>'/ \
1087a15e6f9aSMark Peek		    n/*/'`mount | cut -d " " -f 1`'/
1088a15e6f9aSMark Peek  complete  mountall	c/-/"(F l r)"/ n@-F@'`\ls -1 /usr/lib/fs`'@
1089a15e6f9aSMark Peek  complete umountall	c/-/"(F h k l r s)"/ n@-F@'`\ls -1 /usr/lib/fs`'@ \
1090a15e6f9aSMark Peek		    n/-h/'`df -k | cut -s -d ":" -f 1 | sort -u`'/
1091a15e6f9aSMark Peek  breaksw
1092*19d2e3deSDmitry Chagincase cygwin:
1093a15e6f9aSMark Peek  # Cygwin mounts
1094a15e6f9aSMark Peek  complete  mount	c/-/"(b c f h m o p s t u v x E X)"/ n/-[hmpv]/n/ \
1095a15e6f9aSMark Peek		    n/-c/x:'/'/ \
1096a15e6f9aSMark Peek		    n/-o/"(user system binary text exec notexec cygexec nosuid managed)"/ \
1097a15e6f9aSMark Peek		    n@*@'`mount -p | tail -1 | cut -d " " -f 1 | xargs ls -1 | awk '"'"'{print $1":/"; } END{print "//";}'"'"'`'@
1098a15e6f9aSMark Peek  complete umount	c/-/"(A c h s S u U v)"/ n/-[AhSUv]/n/ \
1099a15e6f9aSMark Peek		    n@*@'`mount | grep -v noumount | cut -d " " -f 3`'@
1100a15e6f9aSMark Peek  breaksw
1101a15e6f9aSMark Peekendsw
1102c80476e4SDavid E. O'Brien
1103c80476e4SDavid E. O'Brien# these deal with NIS (formerly YP); if it's not running you don't need 'em
11046767bd61SMark Peekif (-X domainname) then
11056767bd61SMark Peek  set _domain = "`domainname`"
11066767bd61SMark Peek  set _ypdir  = /var/yp	# directory where NIS (YP) maps are kept
11076767bd61SMark Peek  if ("$_domain" != "" && "$_domain" != "noname") then
1108c80476e4SDavid E. O'Brien    complete domainname p@1@D:$_ypdir@" " n@*@n@
1109c80476e4SDavid E. O'Brien    complete ypcat	    c@-@"(d k t x)"@ n@-x@n@ n@-d@D:$_ypdir@" " \
1110c80476e4SDavid E. O'Brien			N@-d@\`\\ls\ -1\ $_ypdir/\$:-1\ \|\ sed\ -n\ s%\\\\.pag\\\$%%p\`@ \
1111c80476e4SDavid E. O'Brien			n@*@\`\\ls\ -1\ $_ypdir/$_domain\ \|\ sed\ -n\ s%\\\\.pag\\\$%%p\`@
1112c80476e4SDavid E. O'Brien    complete ypmatch    c@-@"(d k t x)"@ n@-x@n@ n@-d@D:$_ypdir@" " \
1113c80476e4SDavid E. O'Brien			N@-d@x:'<key ...>'@ n@-@x:'<key ...>'@ p@1@x:'<key ...>'@ \
1114c80476e4SDavid E. O'Brien			n@*@\`\\ls\ -1\ $_ypdir/$_domain\ \|\ sed\ -n\ s%\\\\.pag\\\$%%p\`@
1115c80476e4SDavid E. O'Brien    complete ypwhich    c@-@"(d m t x V1 V2)"@ n@-x@n@ n@-d@D:$_ypdir@" " \
1116c80476e4SDavid E. O'Brien			n@-m@\`\\ls\ -1\ $_ypdir/$_domain\ \|\ sed\ -n\ s%\\\\.pag\\\$%%p\`@ \
1117c80476e4SDavid E. O'Brien			N@-m@n@ n@*@\$hosts@
11186767bd61SMark Peek  endif
11196767bd61SMark Peek  unset _domain _ypdir
11206767bd61SMark Peekendif
1121c80476e4SDavid E. O'Brien
1122c80476e4SDavid E. O'Briencomplete make \
1123c80476e4SDavid E. O'Brien    'n/-f/f/' \
1124c80476e4SDavid E. O'Brien    'c/*=/f/' \
1125c80476e4SDavid E. O'Brien    'n@*@`cat -s GNUmakefile Makefile makefile |& sed -n -e "/No such file/d" -e "/^[^     #].*:/s/:.*//p"`@'
1126c80476e4SDavid E. O'Brien
1127c80476e4SDavid E. O'Brienif ( -f /etc/printcap ) then
1128c80476e4SDavid E. O'Brien    set printers=(`sed -n -e "/^[^     #].*:/s/:.*//p" /etc/printcap`)
1129c80476e4SDavid E. O'Brien
1130c80476e4SDavid E. O'Brien    complete lpr    'c/-P/$printers/'
1131c80476e4SDavid E. O'Brien    complete lpq    'c/-P/$printers/'
1132c80476e4SDavid E. O'Brien    complete lprm   'c/-P/$printers/'
1133c80476e4SDavid E. O'Brien    complete lpquota        'p/1/(-Qprlogger)/' 'c/-P/$printers/'
1134c80476e4SDavid E. O'Brien    complete dvips  'c/-P/$printers/' 'n/-o/f:*.{ps,PS}/' 'n/*/f:*.dvi/'
11353b6eaa7bSAndrey A. Chernov    complete dvilj	'p/*/f:*.dvi/'
1136c80476e4SDavid E. O'Brienendif
1137c80476e4SDavid E. O'Brien
1138b2d5d167SMark Peek# From Alphonse Bendt
1139b2d5d167SMark Peekcomplete ant \
1140b2d5d167SMark Peek     'n/-f/f:*.xml/' \
1141b2d5d167SMark Peek	  'n@*@`cat build.xml | sed -n -e "s/[ \t]*<target[\t\n]*name=.\([a-zA-Z0-9_:]*\).*/\1/p"`@'
1142b2d5d167SMark Peek
1143b2d5d167SMark Peekif ($?P4CLIENT && -X perl) then
1144b2d5d167SMark Peek    # This is from Greg Allen.
1145b2d5d167SMark Peek    set p4cmds=(add branch branches commands change changes client clients \
1146b2d5d167SMark Peek	counter counters delete depot depots describe diff diff2 \
1147b2d5d167SMark Peek	edit filelog files fix fixes fstat group groups have help \
1148b2d5d167SMark Peek	info integrate integrated job jobs jobspec label labels \
1149b2d5d167SMark Peek	labelsync lock obliterate opened passwd print protect rename \
1150b2d5d167SMark Peek	reopen resolve resolved revert review reviews set submit \
1151b2d5d167SMark Peek	sync triggers unlock user users verify where)
1152b2d5d167SMark Peek    complete p4 'p/1/$p4cmds/' 'n/help/$p4cmds/' \
1153b2d5d167SMark Peek	'n%{-l,label}%`p4 labels | sed "s/Label \([^ ]*\) .*/\1/"`%' \
1154b2d5d167SMark Peek	'n%-t%`p4 $:1s | sed "s/[^ ]* \([^ ]*\) .*/\1/"`%' \
1155b2d5d167SMark Peek	'c%*@%`p4 labels | sed "s/Label \([^ ]*\) .*/\1/"`%' \
1156b2d5d167SMark Peek	'c@//*/*@`p4 files $:-0... |& perl -nle "m%\Q$:-0\E([^#][^/# ] \
1157b2d5d167SMark Peek	*)%;print "\$"1 if \\\!/no such/&&\!"\$"h{"\$"1}++"`@@' \
1158b2d5d167SMark Peek	'c@//@`p4 depots | sed "s/Depot \([^ ]*\) .*/\1/"`@/@'
1159b2d5d167SMark Peekendif
1160b2d5d167SMark Peek
1161b2d5d167SMark Peek
1162b2d5d167SMark Peekif (! $?traditional_complete) then
1163b2d5d167SMark Peek    uncomplete vi
1164b2d5d167SMark Peek    uncomplete vim
1165b2d5d167SMark Peek    complete {vi,vim,gvim,nvi,elvis} 	n/*/f:^*.{o,a,so,sa,aux,dvi,log,fig,bbl,blg,bst,idx,ilg,ind,toc}/
1166b2d5d167SMark Peek    complete {ispell,spell,spellword}	'n@-d@`ls /usr/lib/ispell/*.aff | sed -e "s/\.aff//" `@' 'n/*/f:^*.{o,a,so,sa,aux,dvi,log,fig,bbl,blg,bst,idx,ilg,ind,toc}/'
1167b2d5d167SMark Peek    complete elm	'n/-[Ai]/f/' 'c@=@F:$HOME/Mail/@' 'n/-s/x:\<subject\>/'
1168b2d5d167SMark Peek    complete ncftp	'n@*@`sed -e '1,2d' $HOME/.ncftp/bookmarks | cut -f 1,2 -d "," | tr "," "\012" | sort | uniq ` '@
1169b2d5d167SMark Peek    complete bibtex	'n@*@`ls *.aux | sed -e "s/\.aux//"`'@
1170b2d5d167SMark Peek    complete dvi2tty	n/*/f:*.dvi/	# Only files that match *.dvi
1171b2d5d167SMark Peek    uncomplete gv
1172b2d5d167SMark Peek    uncomplete ghostview
1173b2d5d167SMark Peek    complete {gv,ghostview}	'n/*/f:*.{ps,eps,epsi}/'
1174b2d5d167SMark Peek    complete enscript \
1175b2d5d167SMark Peek	    'c/--/(columns= pages= header= no-header truncate-lines \
1176b2d5d167SMark Peek		    line-numbers setpagedevice= escapes font= \
1177b2d5d167SMark Peek		    header-font= fancy-header no-job-header \
1178b2d5d167SMark Peek		    highlight-bars indent= filter= borders page-prefeed \
1179b2d5d167SMark Peek		    no-page-prefeed lineprinter lines-per-page= mail \
1180b2d5d167SMark Peek		    media= copies= newline= output= missing-characters \
1181b2d5d167SMark Peek		    printer= quiet silent landscape portrait \
1182b2d5d167SMark Peek		    baselineskip= statusdict= title= tabsize= underlay= \
1183b2d5d167SMark Peek		    verbose version encoding pass-through download-font= \
1184b2d5d167SMark Peek		    filter-stdin= help highlight-bar-gray= list-media \
1185b2d5d167SMark Peek		    list-options non-printable-format= page-label-format= \
1186b2d5d167SMark Peek		    printer-options= ul-angle= ul-font= ul-gray= \
1187b2d5d167SMark Peek		    ul-position= ul-style= \
1188b2d5d167SMark Peek		 )/'
1189b2d5d167SMark Peekendif
1190b2d5d167SMark Peek
119123338178SMark Peekcomplete dpkg \
119223338178SMark Peek	    'c/--{admindir,instdir,root}=/d/' \
1193b2d5d167SMark Peek	    'c/--debug=/n/' \
1194b2d5d167SMark Peek	    'c/--{admindir,debug,instdir,root}/(=)//' \
1195b2d5d167SMark Peek	    'c/--/(admindir= debug= instdir= root= \
1196b2d5d167SMark Peek		    assert-support-predepends assert-working-epoch \
1197b2d5d167SMark Peek		    audit auto-deconfigure clear-avail \
1198b2d5d167SMark Peek		    compare-versions configure contents control \
1199b2d5d167SMark Peek		    extract force-bad-path field \
1200b2d5d167SMark Peek		    force-configure-any force-conflicts \
1201b2d5d167SMark Peek		    force-depends force-depends-version force-help \
1202b2d5d167SMark Peek		    force-hold force-non-root \
1203b2d5d167SMark Peek		    force-overwrite-diverted \
1204b2d5d167SMark Peek		    force-remove-essential force-remove-reinstreq \
1205b2d5d167SMark Peek		    forget-old-unavail fsys-tarfile get-selections \
1206b2d5d167SMark Peek		    help ignore-depends info install largemem \
1207b2d5d167SMark Peek		    license list listfiles merge-avail no-act \
1208b2d5d167SMark Peek		    pending predep-package print-architecture \
1209b2d5d167SMark Peek		    print-gnu-build-architecture \
1210b2d5d167SMark Peek		    print-installation-architecture print-avail \
1211b2d5d167SMark Peek		    purge record-avail recursive refuse-downgrade \
1212b2d5d167SMark Peek		    remove search set-selections selected-only \
1213b2d5d167SMark Peek		    skip-same-version smallmem status unpack \
1214b2d5d167SMark Peek		    update-avail version vextract \
1215b2d5d167SMark Peek		  )//' \
1216b2d5d167SMark Peek	    'n/{-l}/`dpkg -l|awk \{print\ \$2\}`/' \
1217b2d5d167SMark Peek	    'n/*/f:*.deb'/
1218b2d5d167SMark Peekcomplete dpkg-deb 	   'c/--{build}=/d/' \
1219b2d5d167SMark Peek		       'c/--/(build contents info field control extract \
1220b2d5d167SMark Peek			     vextract fsys-tarfile help version \
1221b2d5d167SMark Peek			     license)//' \
1222b2d5d167SMark Peek		       'n/*/f:*.deb/'
122323338178SMark Peekcomplete apt-get \
122423338178SMark Peek	    'c/--/(build config-file diff-only download-only \
1225b2d5d167SMark Peek	       fix-broken fix-missing force-yes help ignore-hold no-download \
1226b2d5d167SMark Peek	       no-upgrade option print-uris purge reinstall quiet simulate \
1227b2d5d167SMark Peek	       show-upgraded target-release tar-only version yes )/' \
1228b2d5d167SMark Peek	    'c/-/(b c= d f h m o= q qq s t x y )/' \
1229b2d5d167SMark Peek	    'n/{source,build-dep}/x:<pkgname>/' \
1230b2d5d167SMark Peek	    'n/{remove}/`dpkg -l|grep ^ii|awk \{print\ \$2\}`/' \
1231b2d5d167SMark Peek	    'n/{install}/`apt-cache pkgnames | sort`/' \
1232b2d5d167SMark Peek	    'C/*/(update upgrade dselect-upgrade source \
1233b2d5d167SMark Peek	       build-dep check clean autoclean install remove)/'
1234b2d5d167SMark Peekcomplete apt-cache \
1235b2d5d167SMark Peek	    'c/--/(all-versions config-file generate full help important \
1236b2d5d167SMark Peek	    names-only option pkg-cache quiet recurse src-cache version )/' \
1237b2d5d167SMark Peek	    'c/-/(c= h i o= p= q s= v)/' \
1238b2d5d167SMark Peek	    'n/{search}/x:<regex>/' \
1239b2d5d167SMark Peek	    'n/{pkgnames,policy,show,showpkg,depends,dotty}/`apt-cache pkgnames | sort`/' \
1240b2d5d167SMark Peek	    'C/*/(add gencaches showpkg stats dump dumpavail unmet show \
1241b2d5d167SMark Peek	    search depends pkgnames dotty policy )/'
1242b2d5d167SMark Peek
1243*19d2e3deSDmitry Chaginswitch ( "${OSTYPE}" )
1244*19d2e3deSDmitry Chagincase FreeBSD:
1245*19d2e3deSDmitry Chagin  set commands=()
1246*19d2e3deSDmitry Chagin  foreach p (fast force one quiet "")
1247*19d2e3deSDmitry Chagin    foreach c (enabled poll rcvar reload restart start status stop)
1248*19d2e3deSDmitry Chagin      set commands=($commands $p$c)
1249*19d2e3deSDmitry Chagin    end
1250*19d2e3deSDmitry Chagin  end
1251*19d2e3deSDmitry Chagin  complete service \
1252*19d2e3deSDmitry Chagin    n/-R/n/ \
1253*19d2e3deSDmitry Chagin    n/-e/n/ \
1254*19d2e3deSDmitry Chagin    n/-l/n/ \
1255*19d2e3deSDmitry Chagin    n/-r/n/ \
1256*19d2e3deSDmitry Chagin    c/-/"(R e l r v)"/ \
1257*19d2e3deSDmitry Chagin    p/2/"($commands)"/ \
1258*19d2e3deSDmitry Chagin    p@1@'`service -l`'@
1259*19d2e3deSDmitry Chagin  unset commands c p
1260*19d2e3deSDmitry Chagin  breaksw
1261*19d2e3deSDmitry Chagincase linux:
1262*19d2e3deSDmitry Chagin  if ( -d /etc/init.d ) then
1263*19d2e3deSDmitry Chagin    set rcdir=/etc/init.d/
1264*19d2e3deSDmitry Chagin  else
1265*19d2e3deSDmitry Chagin    set rcdir=/etc/rc.d/
1266c80476e4SDavid E. O'Brien  endif
1267*19d2e3deSDmitry Chagin  complete service \
1268*19d2e3deSDmitry Chagin    p/2/"(--full-restart force-reload reload restart start stop status)"/ \
1269*19d2e3deSDmitry Chagin    c/--/"(help status-all version)"/ \
1270*19d2e3deSDmitry Chagin    c/-/"(- h)"/ \
1271*19d2e3deSDmitry Chagin    p@1@F:$rcdir@
1272*19d2e3deSDmitry Chagin  unset rcdir
1273*19d2e3deSDmitry Chagin  breaksw
1274*19d2e3deSDmitry Chaginendsw
1275*19d2e3deSDmitry Chagin
1276*19d2e3deSDmitry Chaginif ( $?_unset_noglob ) unset noglob _unset_noglob
1277c80476e4SDavid E. O'Brien
1278c80476e4SDavid E. O'Brienend:
1279*19d2e3deSDmitry Chaginunset _has_complete
1280c80476e4SDavid E. O'Brienonintr
1281