tcsh/tcsh-6.14.00.dif

2102 lines
71 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--- .pkgextract
+++ .pkgextract 2006-04-25 14:58:31.000000000 +0200
@@ -0,0 +1,4 @@
+patch -p0 -s --suffix=.spell < ../tcsh-6.14.00-spelling.dif
+patch -p0 -s --suffix=.bsdsig < ../tcsh-6.14.00-bsdsignals.dif
+patch -p0 -s --suffix=.utf8 < ../tcsh-6.14.00-utf8.dif
+patch -p0 -s --suffix=.pipe < ../tcsh-6.14.00-pipe.dif
--- Makefile.in
+++ Makefile.in 2006-04-25 14:58:31.000000000 +0200
@@ -8,7 +8,7 @@
# things; Paul Placeway, CIS Dept., Ohio State University
#
SHELL=/bin/sh
-VERSION=6.12
+VERSION=6.14
BUILD=tcsh$(EXEEXT)
VPATH=@srcdir@
srcdir=@srcdir@
@@ -474,12 +474,12 @@
@vgrind -t -x -h Index index >/crp/bill/csh/index.t
install-strip: install
+ -strip ${DESTBIN}/tcsh$(EXEEXT)
install: tcsh$(EXEEXT)
-mkdir -p ${DESTBIN}
-mv -f ${DESTBIN}/tcsh$(EXEEXT) ${DESTBIN}/tcsh.old
cp tcsh$(EXEEXT) ${DESTBIN}/tcsh$(EXEEXT)
- -strip ${DESTBIN}/tcsh$(EXEEXT)
chmod 755 ${DESTBIN}/tcsh$(EXEEXT)
install.man: tcsh.man
--- config_f.h
+++ config_f.h 2006-04-25 14:58:31.000000000 +0200
@@ -69,12 +69,17 @@
* if you don't have <nl_types.h>, you don't want
* to define this.
*/
-#undef NLS_CATALOGS
+#define NLS_CATALOGS
/*
- * LOGINFIRST Source ~/.login before ~/.cshrc
+ * LOGINFIRST Source /etc/csh.login before /etc/csh.cshrc
*/
-#undef LOGINFIRST
+#define LOGINFIRST
+
+/*
+ * USERLOGINFIRST Source ~/.login before ~/.cshrc
+ */
+#undef USERLOGINFIRST
/*
* VIDEFAULT Make the VI mode editor the default
@@ -149,7 +154,7 @@
* This can be much slower and no memory statistics will be
* provided.
*/
-#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__)
+#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined(linux)
# define SYSMALLOC
#else
# undef SYSMALLOC
@@ -168,7 +173,7 @@
* successful, set $REMOTEHOST to the name or address of the
* host
*/
-#define REMOTEHOST
+#undef REMOTEHOST
/*
* COLOR_LS_F Do you want to use builtin color ls-F ?
@@ -191,7 +196,7 @@
* RCSID This defines if we want rcs strings in the binary or not
*
*/
-#if !defined(lint) && !defined(SABER) && !defined(__CLCC__)
+#if !defined(lint) && !defined(SABER) && !defined(__CLCC__) && !defined(__linux__)
# ifndef __GNUC__
# define RCSID(id) static char *rcsid = (id);
# else
--- glob.h
+++ glob.h 2006-04-25 14:58:31.000000000 +0200
@@ -72,6 +72,7 @@
#define GLOB_NOSYS (-4) /* Implementation does not support function. */
/* #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) */
+#if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE || defined _GNU_SOURCE)
#define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */
#define GLOB_BRACE 0x0080 /* Expand braces ala csh. */
#define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */
@@ -82,7 +83,7 @@
#define GLOB_QUOTE 0x2000 /* XXX: source compatibility */
#define GLOB_ABEND GLOB_ABORTED /* source compatibility */
-/* #endif */
+#endif
#include "tc.nls.h"
--- host.defs
+++ host.defs 2006-04-25 14:58:31.000000000 +0200
@@ -111,7 +111,7 @@
/*
* On convex, find the current machine type via the getsysinfo() syscall
*/
-#include <sys/sysinfo.h>
+# include <sys/sysinfo.h>
/* From: fox@convex.com (David DeSimone) */
static char *
@@ -169,6 +169,32 @@
endcode :
enddef :
+newdef : defined(linux) || defined(__GNU__) || defined(__GLIBC__)
+comment : Linus Torvalds's linux
+newcode :
+# include <sys/utsname.h>
+static char * gethost() __attribute__ ((unused));
+static char * getmach() __attribute__ ((unused));
+static char * getmach()
+{
+ static char* mach = "unknown";
+ struct utsname uts;
+ if (uname(&uts) == 0)
+ mach = uts.machine;
+ return mach;
+}
+static char * gethost()
+{
+ static char host[256];
+ struct utsname uts;
+ if (uname(&uts) == 0)
+ xsnprintf(host, sizeof(host), "%s-linux", uts.machine);
+ else
+ xsnprintf(host, sizeof(host), "unknown-linux");
+ return host;
+}
+endcode :
+enddef :
newcode :
void
@@ -435,17 +461,18 @@
enddef :
-newdef : defined(linux) || defined(__GNU__) || defined(__GLIBC__)
-comment : Linus Torvalds's linux
+vendor : defined(SuSE) : "suse"
vendor : defined(M_intel) : "intel"
hosttype: defined(__ia64__) : "ia64-linux"
hosttype: defined(__powerpc64__) : "powerpc64-linux"
hosttype: defined(__s390x__) : "s390x-linux"
hosttype: defined(__s390__) : "s390-linux"
hosttype: defined(__x86_64__) : "x86_64-linux"
+hosttype: defined(M_i686) : "i686-linux"
hosttype: defined(M_i586) : "i586-linux"
hosttype: defined(M_i486) : "i486-linux"
hosttype: defined(M_i386) : "i386-linux"
+hosttype: : gethost()
ostype : !defined(PPC) : "linux"
ostype : defined(PPC) : "mklinux"
machtype: defined(__ia64__) : "ia64"
@@ -453,9 +480,11 @@
machtype: defined(__s390x__) : "s390x"
machtype: defined(__s390__) : "s390"
machtype: defined(__x86_64__) : "x86_64"
+machtype: defined(M_i686) : "i686"
machtype: defined(M_i586) : "i586"
machtype: defined(M_i486) : "i486"
machtype: defined(M_i386) : "i386"
+machtype: : getmach()
vendor : defined(__alpha) : "dec"
vendor : defined(PPC) : "apple"
hosttype: defined(__alpha) : "alpha"
@@ -466,6 +495,7 @@
machtype: defined(M_mipseb) : "mipseb"
machtype: defined(M_mips64el) : "mips64el"
machtype: defined(M_mips64eb) : "mips64eb"
+machtype: : getmach()
enddef :
--- pathnames.h
+++ pathnames.h 2006-04-25 14:58:31.000000000 +0200
@@ -33,7 +33,7 @@
#ifndef _h_pathnames
#define _h_pathnames
-#ifdef BSD4_4
+#if defined(BSD4_4) || defined(linux)
# include <paths.h>
#endif
@@ -84,7 +84,7 @@
# endif /* !_PATH_DOTLOGIN */
#endif /* sgi || OREO || cray || AMIX || CDC */
-#if (defined(_CRAYCOM) || defined(Lynx)) && !defined(_PATH_TCSHELL)
+#if (defined(_CRAYCOM) || defined(Lynx) || defined(linux)) && !defined(_PATH_TCSHELL)
# define _PATH_TCSHELL "/bin/tcsh" /* 1st class shell */
#endif /* _CRAYCOM && !_PATH_TCSHELL */
--- sh.c
+++ sh.c 2006-04-25 14:58:31.000000000 +0200
@@ -475,7 +475,8 @@
if (loginsh || (uid == 0)) {
if (*cp) {
/* only for login shells or root and we must have a tty */
- if ((cp2 = Strrchr(cp, (Char) '/')) != NULL) {
+ if (((cp2 = Strrchr(cp, (Char) '/')) != NULL) &&
+ (Strncmp(cp, STRpts, 3) != 0)) {
cp = cp2 + 1;
}
else
@@ -737,7 +738,16 @@
shtemp = Strspl(SAVE(strtmp2), doldol); /* For << */
}
#else /* !WINNT_NATIVE */
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+ {
+ char *tmpdir = getenv ("TMPDIR");
+ if (!tmpdir)
+ tmpdir = "/tmp";
+ shtemp = Strspl(SAVE(tmpdir), SAVE("/sh.XXXXXX")); /* For << */
+ }
+#else
shtemp = Strspl(STRtmpsh, doldol); /* For << */
+#endif /* __GLIBC__ */
#endif /* WINNT_NATIVE */
/*
@@ -786,9 +796,9 @@
/* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
#if defined(DSPMBYTE)
#if defined(NLS) && defined(LC_CTYPE)
- if (((tcp = setlocale(LC_CTYPE, NULL)) != NULL || (tcp = getenv("LANG")) != NULL) && !adrof(CHECK_MBYTEVAR)) {
+ if (((tcp = setlocale(LC_CTYPE, NULL)) != NULL || (tcp = getenv("LANG")) != NULL)) {
#else
- if ((tcp = getenv("LANG")) != NULL && !adrof(CHECK_MBYTEVAR)) {
+ if ((tcp = getenv("LANG")) != NULL) {
#endif
autoset_dspmbyte(str2short(tcp));
}
@@ -1311,6 +1321,9 @@
setintr = osetintr;
parintr = oparintr;
}
+#ifndef USERLOGINFIRST
+# undef LOGINFIRST
+#endif
#ifdef LOGINFIRST
if (loginsh)
(void) srccat(varval(STRhome), STRsldotlogin);
@@ -1667,6 +1680,7 @@
Char **av;
{
struct saved_state st;
+ st.mask = (sigmask_t)0;
st.SHIN = -1; /* st_restore checks this */
if (unit < 0)
--- sh.dol.c
+++ sh.dol.c 2006-04-25 14:58:31.000000000 +0200
@@ -30,6 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+#include <features.h>
#include "sh.h"
RCSID("$Id: sh.dol.c,v 3.55 2004/12/25 21:15:06 christos Exp $")
@@ -1029,6 +1030,29 @@
Char *lbp, *obp, *mbp;
Char **vp;
int quoted;
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+ char *tmp = short2str(shtemp);
+ char *dot = strrchr(tmp, '.');
+ int fd;
+
+ if (!dot)
+ stderror(ERR_NAME | ERR_NOMATCH);
+ strcpy(dot, ".XXXXXX");
+
+ if ((fd = mkstemp(tmp)) < 0)
+ stderror(ERR_SYSTEM, tmp, strerror(errno));
+
+# ifndef O_TEMPORARY
+# define O_TEMPORARY 0
+# endif
+ (void) close(0);
+ if (open(tmp, O_RDWR|O_TEMPORARY) == -1) {
+ int oerrno = errno;
+ (void) unlink(tmp);
+ errno = oerrno;
+ stderror(ERR_SYSTEM, tmp, strerror(errno));
+ }
+#else /* !__GLIBC__ */
char *tmp;
#ifndef WINNT_NATIVE
struct timeval tv;
@@ -1064,6 +1088,7 @@
errno = oerrno;
stderror(ERR_SYSTEM, tmp, strerror(errno));
}
+#endif /* !__GLIBC__ */
(void) unlink(tmp); /* 0 0 inode! */
Dv[0] = term;
Dv[1] = NULL;
@@ -1207,4 +1232,7 @@
if (pargv)
blkfree(pargv), pargv = 0;
}
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+ close(fd);
+#endif
}
--- sh.exec.c
+++ sh.exec.c 2006-04-25 14:58:31.000000000 +0200
@@ -308,8 +308,9 @@
#endif /* COHERENT */
texec(*av, av);
-}
- else {
+
+ } else {
+
dp = Strspl(*pv, sav);
#ifdef VFORK
Vdp = dp;
--- sh.func.c
+++ sh.func.c 2006-04-25 14:58:31.000000000 +0200
@@ -1365,14 +1365,6 @@
}
#endif /* apollo */
- /* dspkanji/dspmbyte autosetting */
- /* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
-#if defined(DSPMBYTE)
- if(eq(vp, STRLANG) && !adrof(CHECK_MBYTEVAR)) {
- autoset_dspmbyte(lp);
- }
-#endif
-
if (islocale_var(vp)) {
#ifdef NLS
int k;
@@ -1394,6 +1386,13 @@
nlsclose();
nlsinit();
# endif /* NLS_CATALOGS */
+# if defined(DSPMBYTE)
+ /* dspkanji/dspmbyte autosetting */
+ /* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
+ if (eq(vp, STRLANG)) {
+ autoset_dspmbyte(lp);
+ }
+# endif
# ifdef SETLOCALEBUG
dont_free = 0;
# endif /* SETLOCALEBUG */
--- sh.glob.c
+++ sh.glob.c 2006-04-25 14:58:31.000000000 +0200
@@ -280,7 +280,7 @@
if (s[0] == '{' && (s[1] == '\0' || (s[1] == '}' && s[2] == '\0')))
continue;
if ((b = Strchr(s, '{')) != NULL) {
- Char **bl;
+ Char **bl = NULL;
int len;
if ((len = globbrace(s, b, &bl)) < 0) {
--- sh.h
+++ sh.h 2006-04-25 14:58:31.000000000 +0200
@@ -276,7 +276,7 @@
# else
# include <termio.h>
# endif /* _UWIN */
-# if SYSVREL > 3
+# if SYSVREL > 3 || defined(linux)
# undef TIOCGLTC /* we don't need those, since POSIX has them */
# undef TIOCSLTC
# undef CSWTCH
@@ -330,6 +330,12 @@
#if !((defined(SUNOS4) || defined(_MINIX) /* || defined(DECOSF1) */) && defined(TERMIO))
# if !defined(COHERENT) && !defined(_VMS_POSIX) && !defined(WINNT_NATIVE)
# include <sys/ioctl.h>
+# if SYSVREL > 3 || defined(linux)
+# undef TIOCGLTC /* we don't need those, since POSIX has them */
+# undef TIOCSLTC
+# undef CSWTCH
+# define CSWTCH _POSIX_VDISABLE /* So job control works */
+# endif /* SYSVREL > 3 */
# endif
#endif
@@ -542,8 +548,14 @@
* April, 1980
*/
-#if !defined(MAXNAMLEN) && defined(_D_NAME_MAX)
-# define MAXNAMLEN _D_NAME_MAX
+#if !defined(MAXNAMLEN)
+# if defined(_D_NAME_MAX)
+# define MAXNAMLEN _D_NAME_MAX
+# elif defined(PATH_MAX)
+# define MAXNAMLEN PATH_MAX
+# else
+# error Unknown MAXNAMLEN
+# endif
#endif /* MAXNAMLEN */
#ifdef HESIOD
@@ -1255,9 +1267,7 @@
# ifdef NLS_CATALOGS
# if defined(linux) || defined(__GNU__) || defined(__GLIBC__)
# include <locale.h>
-# ifdef notdef
-# include <localeinfo.h> /* Has this changed ? */
-# endif
+# include <langinfo.h>
# include <features.h>
# endif
# ifdef SUNOS4
--- sh.lex.c
+++ sh.lex.c 2006-04-25 14:58:31.000000000 +0200
@@ -1596,7 +1596,7 @@
int ctpgrp;
#endif /* BSDJOBS */
- if (numeof != 0 && ++sincereal >= numeof) /* Too many EOFs? Bye! */
+ if (++sincereal >= numeof) /* Too many EOFs? Bye! */
goto oops;
#ifdef BSDJOBS
if (tpgrp != -1 &&
--- sh.sem.c
+++ sh.sem.c 2006-04-25 14:58:31.000000000 +0200
@@ -647,10 +647,19 @@
* possible stopping
*/
if (bifunc) {
- func(t, bifunc);
- if (forked)
+ if (forked) {
+ func(t, bifunc);
exitstat();
- else {
+ } else {
+ jmp_buf_t oldexit;
+ int ohaderr = haderr;
+
+ getexit(oldexit);
+ if (setexit() == 0)
+ func(t, bifunc);
+ resexit(oldexit);
+ haderr = ohaderr;
+
if (adrof(STRprintexitvalue)) {
int rv = getn(varval(STRstatus));
if (rv != 0)
--- sh.set.c
+++ sh.set.c 2006-04-25 14:58:31.000000000 +0200
@@ -1131,11 +1131,11 @@
dstr1 = vp->vec[0];
if(eq (dstr1, STRsjis))
iskcode = 1;
- else if (eq(dstr1, STReuc))
+ else if (eq(dstr1, STReuc) || eq(dstr1, STReucjp) || eq(dstr1, STRGB2312))
iskcode = 2;
else if (eq(dstr1, STRbig5))
iskcode = 3;
- else if (eq(dstr1, STRutf8))
+ else if (eq(dstr1, STRutf8) || eq(dstr1, STRutfx8))
iskcode = 4;
else if ((dstr1[0] - '0') >= 0 && (dstr1[0] - '0') <= 3) {
iskcode = 0;
@@ -1219,7 +1219,7 @@
_enable_mbdisp = 0;
dspmbyte_ls = 0;
}
-#ifdef MBYTEDEBUG /* Sorry, use for beta testing */
+# ifdef MBYTEDEBUG /* Sorry, use for beta testing */
{
Char mbmapstr[300];
for (lp = 0; lp < 256; lp++) {
@@ -1228,7 +1228,7 @@
}
set(STRmbytemap, Strsave(mbmapstr), VAR_READWRITE);
}
-#endif /* MBYTEMAP */
+# endif /* MBYTEMAP */
}
/* dspkanji/dspmbyte autosetting */
@@ -1238,6 +1238,7 @@
Char *pcp;
{
int i;
+ struct varent *vp;
struct dspm_autoset_Table {
Char *n;
Char *v;
@@ -1260,13 +1261,18 @@
#ifdef HAVE_NL_LANGINFO
struct dspm_autoset_Table dspmc[] = {
{ STRstarutfstar8, STRutf8 },
+ { STRutfx8, STRutf8 },
{ STReuc, STReuc },
+ { STReucjp, STReuc },
{ STRGB2312, STReuc },
{ STRLANGBIG5, STRbig5 },
{ NULL, NULL }
};
Char *codeset;
+ if ((vp = adrof(CHECK_MBYTEVAR)))
+ unsetv1(vp);
+
codeset = str2short(nl_langinfo(CODESET));
if (*codeset != '\0') {
for (i = 0; dspmc[i].n; i++) {
--- tc.alloc.c
+++ tc.alloc.c 2006-04-25 14:58:31.000000000 +0200
@@ -488,7 +488,7 @@
{
ptr_t ptr;
- n = n ? n : 1;
+ n = n ? n+1 : 1;
#ifdef HAVE_SBRK
if (membot == NULL)
@@ -515,7 +515,7 @@
{
ptr_t ptr;
- n = n ? n : 1;
+ n = n ? n+1 : 1;
#ifdef HAVE_SBRK
if (membot == NULL)
@@ -543,7 +543,7 @@
ptr_t ptr;
n *= s;
- n = n ? n : 1;
+ n = n ? n+1 : 1;
#ifdef HAVE_SBRK
if (membot == NULL)
@@ -575,8 +575,10 @@
sfree(p)
ptr_t p;
{
- if (p && !dont_free)
+ if (p && !dont_free) {
free(p);
+ p = (ptr_t)NULL;
+ }
}
#endif /* SYSMALLOC */
--- tc.const.c
+++ tc.const.c 2006-04-25 14:58:31.000000000 +0200
@@ -127,10 +127,12 @@
Char STRmmliteral[] = { '-', '-', 'l', 'i', 't', 'e', 'r', 'a', 'l', '\0' };
# endif
Char STReuc[] = { 'e', 'u', 'c', '\0' };
+Char STReucjp[] = { 'e', 'u', 'c', '-', 'j', 'p', '\0' };
Char STRsjis[] = { 's', 'j', 'i', 's', '\0' };
Char STRbig5[] = { 'b', 'i', 'g', '5', '\0' };
Char STRutf8[] = { 'u', 't', 'f', '8', '\0' };
Char STRstarutfstar8[] = { '*', 'u', 't', 'f', '*', '8', '\0' };
+Char STRutfx8[] = { 'u', 't', 'f', '-', '8', '\0' };
Char STRGB2312[] = { 'g', 'b', '2', '3', '1', '2', '\0' };
# ifdef MBYTEDEBUG /* Sorry, use for beta testing */
Char STRmbytemap[] = { 'm', 'b', 'y', 't', 'e', 'm', 'a', 'p', '\0' };
@@ -427,7 +429,7 @@
Char STRshlvl[] = { 's', 'h', 'l', 'v', 'l', '\0' };
Char STRKSHLVL[] = { 'S', 'H', 'L', 'V', 'L', '\0' };
Char STRLANG[] = { 'L', 'A', 'N', 'G', '\0' };
-Char STRLC_ALL[] = { 'L', 'C', '_', 'A', 'L', 'L', '\0' };
+Char STRLC_ALL[] = { 'L', 'C', '_', 'A', 'L', 'L', '\0' };
Char STRLC_CTYPE[] = { 'L', 'C', '_', 'C', 'T', 'Y', 'P', 'E' ,'\0' };
Char STRLC_NUMERIC[] = { 'L', 'C', '_', 'N', 'U', 'M', 'E', 'R', 'I',
'C', '\0' };
--- tc.decls.h
+++ tc.decls.h 2006-04-25 14:58:31.000000000 +0200
@@ -77,7 +77,7 @@
extern Char *expand_lex __P((Char *, size_t, struct wordent *,
int, int));
extern Char *sprlex __P((Char *, size_t, struct wordent *));
-extern Char *Itoa __P((int, Char *, int, int));
+extern Char *Itoa __P((int, Char *, size_t, int));
extern void dolist __P((Char **, struct command *));
extern void dotermname __P((Char **, struct command *));
extern void dotelltc __P((Char **, struct command *));
--- tc.func.c
+++ tc.func.c 2006-04-25 14:58:31.000000000 +0200
@@ -197,7 +197,8 @@
Itoa(n, s, min_digits, attributes)
int n;
Char *s;
- int min_digits, attributes;
+ size_t min_digits;
+ int attributes;
{
/*
* The array size here is derived from
@@ -756,9 +757,14 @@
# define XCRYPT(a, b) crypt(a, b)
- if ((pw = getpwuid(euid)) != NULL && /* effective user passwd */
- (spw = getspnam(pw->pw_name)) != NULL) /* shadowed passwd */
- srpp = spw->sp_pwdp;
+ if ( (pw = getpwuid(euid)) != NULL ) { /* effective user passwd */
+ if ( (spw = getspnam(pw->pw_name)) != NULL ) /* shadowed passwd */
+ srpp = spw->sp_pwdp;
+ else
+ srpp = pw->pw_passwd; /* nis extended passwd? */
+ }
+ endspent();
+ endpwent();
#else
@@ -2168,7 +2174,7 @@
* have not caught up yet.
*/
addr.s_addr = inet_addr(name);
- if (addr.s_addr != (unsigned int)~0)
+ if (addr.s_addr != ~0U)
host = name;
else {
if (sptr != name) {
--- tc.str.c
+++ tc.str.c 2006-04-25 14:58:31.000000000 +0200
@@ -314,7 +314,7 @@
{
size_t n;
- for (n = 0; *str++; n++)
+ for (n = 0; str && *str; n++, str++)
continue;
return (n);
}
--- tc.who.c
+++ tc.who.c 2006-04-25 14:58:31.000000000 +0200
@@ -282,6 +282,9 @@
}
stlast = sta.st_mtime;
#ifdef HAVE_GETUTENT
+# ifndef HAVE_UTMPX_H
+ utmpname( _PATH_UTMP );
+# endif
setutent();
#else
if ((utmpfd = open(TCSH_PATH_UTMP, O_RDONLY|O_LARGEFILE)) < 0) {
--- tcsh.man
+++ tcsh.man 2006-04-25 14:58:31.000000000 +0200
@@ -566,7 +566,7 @@
changes to the next previous word etc., skipping identical matches
much like \fIhistory-search-backward\fR does.
.TP 8
-.B delete-char \fR(not bound)
+.B delete-char \fR(bound to `Del' if using the standard \fI/etc/csh.cshrc\fR)
Deletes the character under the cursor.
See also \fIdelete-char-or-list-or-eof\fR.
.TP 8
--- tw.color.c
+++ tw.color.c 2006-04-25 14:59:08.000000000 +0200
@@ -80,6 +80,11 @@
#endif
VAR(NOS, "rc", "m"), /* Right code */
VAR(NOS, "ec", ""), /* End code (replaces lc+no+rc) */
+ VAR(NOS, "st", ""), /* Ignore */
+ VAR(NOS, "su", ""), /* Ignore */
+ VAR(NOS, "sg", ""), /* Ignore */
+ VAR(NOS, "tw", ""), /* Ignore */
+ VAR(NOS, "ow", ""), /* Ignore */
};
enum FileType {
@@ -173,7 +178,7 @@
size_t i, len;
const Char *v; /* pointer in value */
char *c; /* pointer in colors */
- Extension *volatile e; /* pointer in extensions */
+ static Extension *volatile e; /* pointer in extensions */
jmp_buf_t osetexit;
(void) &e;
@@ -303,11 +308,12 @@
break;
}
if (i == nvariables) {
- for (i = 0; i < nextensions; i++)
- if (strncmp(last - extensions[i].extension.len,
- extensions[i].extension.s,
- extensions[i].extension.len) == 0) {
- color = &extensions[i].color;
+ int j;
+ for (j = 0; j < nextensions; j++)
+ if (strncmp(last - extensions[j].extension.len,
+ extensions[j].extension.s,
+ extensions[j].extension.len) == 0) {
+ color = &extensions[j].color;
break;
}
}
--- tw.h
+++ tw.h 2006-04-25 14:58:31.000000000 +0200
@@ -33,6 +33,10 @@
#ifndef _h_tw
#define _h_tw
+#ifndef _h_sh
+# include "sh.h"
+#endif
+
#define TW_PATH 0x1000
#define TW_ZERO 0x0fff
--- tw.parse.c
+++ tw.parse.c 2006-04-25 14:58:31.000000000 +0200
@@ -1055,7 +1055,7 @@
else {
/* maximum length 1 (NULL) + 1 (~ or $) + 1 (filetype) */
ptr = tw_item_add(len + 3);
- copyn(ptr, buf, MAXPATHLEN);
+ copyn(ptr, buf, len + 2);
if (command == LIST)
numitems++;
}
--- SuSE/bindkey.tcsh
+++ SuSE/bindkey.tcsh 2006-04-25 14:58:31.000000000 +0200
@@ -0,0 +1,243 @@
+#
+# bindkey.tcsh Bind keys on escape sequences of xterm
+# and linux console
+#
+# Copyright: 1993-2002 Werner Fink, 1996-2002 SuSE Linux AG, Germany
+#
+# Author: Werner Fink <feedback@suse.de>
+
+#
+# Default values
+#
+if ( ! ${?TERM} ) setenv TERM linux
+if ( ! ${?CSHEDIT} ) setenv CSHEDIT emacs
+
+#
+# VI line editing
+#
+if ( "$CSHEDIT" == "vi" ) then
+ bindkey -v
+else
+ bindkey "^[ " magic-space
+ bindkey "^[!" expand-history
+endif
+#
+# Common standard keypad and cursor
+#
+bindkey "^[[2~" yank
+bindkey "^[[3~" delete-char
+bindkey "^[[5~" history-search-backward
+bindkey "^[[6~" history-search-forward
+if ( "$TERM" == "xterm" ) then
+ bindkey "\e[2;2~" yank
+ bindkey "\e[3;2~" delete-char
+ bindkey "\e[5;2~" history-search-backward
+ bindkey "\e[6;2~" history-search-forward
+ bindkey "\e[2;5~" yank
+ bindkey "\e[3;5~" delete-char
+ bindkey "\e[5;5~" history-search-backward
+ bindkey "\e[6;5~" history-search-forward
+endif
+bindkey "^[[C" forward-char
+bindkey "^[[D" backward-char
+bindkey "^[[A" up-history
+bindkey "^[[B" down-history
+if ( "$TERM" == "xterm" ) then
+ bindkey -c "^[[E" "source /etc/csh.cshrc"
+ bindkey "^[[2C" forward-word
+ bindkey "^[[2D" backward-word
+ bindkey "^[[2A" history-search-backward
+ bindkey "^[[2B" history-search-forward
+ bindkey "^[[5C" forward-word
+ bindkey "^[[5D" backward-word
+ bindkey "^[[5A" history-search-backward
+ bindkey "^[[5B" history-search-forward
+else
+ bindkey -c "^[[G" "source /etc/csh.cshrc"
+endif
+#
+# Avoid network problems
+# ... \177 (ASCII-DEL) and \010 (ASCII-BS)
+# do `backward-delete-char'
+# Note: `delete-char' is maped to \033[3~
+# Therefore xterm's responce on pressing
+# key Delete or KP-Delete should be
+# \033[3~ ... NOT \177
+#
+bindkey "^?" backward-delete-char
+bindkey "^H" backward-delete-char
+#
+# Home and End
+#
+if ( "$TERM" == "xterm" ) then
+ #
+ # Normal keypad and cursor of xterm
+ #
+ bindkey "^[[1~" history-search-backward
+ bindkey "^[[4~" set-mark-command
+ bindkey "^[[H" beginning-of-line
+ bindkey "^[[F" end-of-line
+ bindkey "^[[2H" beginning-of-line
+ bindkey "^[[2F" end-of-line
+ bindkey "^[[5H" beginning-of-line
+ bindkey "^[[5F" end-of-line
+ # Home and End of application keypad and cursor of xterm
+ bindkey "^[OH" beginning-of-line
+ bindkey "^[OF" end-of-line
+ bindkey "^[O2H" beginning-of-line
+ bindkey "^[O2F" end-of-line
+ bindkey "^[O5H" beginning-of-line
+ bindkey "^[O5F" end-of-line
+else
+if ( "$TERM" == "kvt" ) then
+ bindkey "^[[1~" history-search-backward
+ bindkey "^[[4~" set-mark-command
+ bindkey "^[OH" beginning-of-line
+ bindkey "^[OF" end-of-line
+endif
+ #
+ # TERM=linux or console
+ #
+ bindkey "^[[1~" beginning-of-line
+ bindkey "^[[4~" end-of-line
+endif
+#
+# Application keypad and cursor of xterm
+#
+if ( "$TERM" == "xterm" ) then
+ bindkey "^[OD" backward-char
+ bindkey "^[OC" forward-char
+ bindkey "^[OA" up-history
+ bindkey "^[OB" down-history
+ bindkey "^[O2D" backward-word
+ bindkey "^[O2C" forward-word
+ bindkey "^[O2A" history-search-backward
+ bindkey "^[O2B" history-search-forward
+ bindkey "^[O5D" backward-word
+ bindkey "^[O5C" forward-word
+ bindkey "^[O5A" history-search-backward
+ bindkey "^[O5B" history-search-forward
+ bindkey -c "^[OE" "source /etc/csh.cshrc"
+ # DEC keyboard KP_F1 - KP_F4 or
+ # XTerm of XFree86 in VT220 mode F1 - F4
+ bindkey -s "^[OP" "^["
+ bindkey "^[OQ" vi-undo
+ bindkey "^[OR" undefined-key
+ bindkey "^[OS" kill-line
+endif
+if ( "$TERM" == "gnome" ) then
+ # or gnome terminal F1 - F4
+ bindkey -s "^[OP" "^["
+ bindkey "^[OQ" vi-undo
+ bindkey "^[OR" undefined-key
+ bindkey "^[OS" kill-line
+endif
+#
+# Function keys F1 - F12
+#
+if ( "$TERM" == "linux" ) then
+ #
+ # On console the first five function keys
+ #
+ bindkey -s "^[[[A" "^["
+ bindkey "^[[[B" vi-undo
+ bindkey "^[[[C" undefined-key
+ bindkey "^[[[D" kill-line
+ bindkey "^[[[E" undefined-key
+else
+ #
+ # The first five standard function keys
+ #
+ bindkey -s "^[[11~" "^["
+ bindkey "^[[12~" vi-undo
+ bindkey "^[[13~" undefined-key
+ bindkey "^[[14~" kill-line
+ bindkey "^[[15~" undefined-key
+endif
+bindkey "^[[17~" undefined-key
+bindkey "^[[18~" undefined-key
+bindkey "^[[19~" undefined-key
+bindkey "^[[20~" undefined-key
+bindkey "^[[21~" undefined-key
+# Note: F11, F12 are identical with Shift_F1 and Shift_F2
+bindkey "^[[23~" undefined-key
+bindkey "^[[24~" undefined-key
+#
+# Shift Function keys F1 - F12
+# identical with F11 - F22
+#
+# bindkey "^[[23~" undefined-key
+# bindkey "^[[24~" undefined-key
+bindkey "^[[25~" undefined-key
+bindkey "^[[26~" undefined-key
+# DEC keyboard: F15=^[[28~ is Help
+bindkey "^[[28~" undefined-key
+# DEC keyboard: F16=^[[29~ is Menu
+bindkey "^[[29~" undefined-key
+bindkey "^[[31~" undefined-key
+bindkey "^[[32~" undefined-key
+bindkey "^[[33~" undefined-key
+bindkey "^[[34~" undefined-key
+if ( "$TERM" == "xterm" ) then
+ # Not common
+ bindkey "^[[35~" undefined-key
+ bindkey "^[[36~" undefined-key
+endif
+#
+if ( "$TERM" == "xterm" ) then
+ #
+ # Application keypad and cursor of xterm
+ # with NumLock ON
+ #
+ # Operators
+ bindkey -s "^[Oo" "/"
+ bindkey -s "^[Oj" "*"
+ bindkey -s "^[Om" "-"
+ bindkey -s "^[Ok" "+"
+ bindkey -s "^[Ol" ","
+ bindkey "^[OM" newline
+ bindkey -s "^[On" "."
+ # Numbers
+ bindkey -s "^[Op" "0"
+ bindkey -s "^[Oq" "1"
+ bindkey -s "^[Or" "2"
+ bindkey -s "^[Os" "3"
+ bindkey -s "^[Ot" "4"
+ bindkey -s "^[Ou" "5"
+ bindkey -s "^[Ov" "6"
+ bindkey -s "^[Ow" "7"
+ bindkey -s "^[Ox" "8"
+ bindkey -s "^[Oy" "9"
+endif
+#
+# EMACS line editing
+#
+if ( "$CSHEDIT" == "emacs" ) then
+ #
+ # ... xterm application cursor
+ #
+ if ( "$TERM" == "xterm" ) then
+ bindkey "^[^[OD" backward-word
+ bindkey "^[^[OC" forward-word
+ bindkey "^[^[OA" up-history
+ bindkey "^[^[OB" down-history
+ bindkey "^^[OD" backward-char
+ bindkey "^^[OC" forward-char
+ bindkey "^^[OA" up-history
+ bindkey "^^[OB" down-history
+ endif
+ #
+ # Standard cursor
+ #
+ bindkey "^[^[[D" backward-word
+ bindkey "^[^[[C" forward-word
+ bindkey "^[^[[A" up-history
+ bindkey "^[^[[B" down-history
+ bindkey "^^[[D" backward-char
+ bindkey "^^[[C" forward-char
+ bindkey "^^[[A" up-history
+ bindkey "^^[[B" down-history
+endif
+#
+# end bindkey.tcsh
+#
--- SuSE/complete.tcsh
+++ SuSE/complete.tcsh 2006-04-25 14:58:31.000000000 +0200
@@ -0,0 +1,910 @@
+#
+# complete.tcsh Define some intelligent command completions
+#
+# Modified version of complete.tcsh (1993) found in the source code
+# the tcsh-6.03. Complemented with the following versions and extend
+# with other features. This was a part of csh.cshrc until 1999/06/25.
+#
+# Author: 1993-99 Werner Fink <werner@suse.de>
+#
+# 1999/06/28: <werner@suse.de> resort to the order to fit complete.tcsh
+# found in tcsh-6.08.05, add the mh completes.
+#
+ set autolist=ambiguous
+ set noglob
+#
+ set hosts
+ foreach _f ($HOME/.hosts /etc/csh.hosts $HOME/.rhosts /etc/hosts.equiv)
+ if ( -r $_f ) then
+ set hosts=($hosts `grep -E -shv '^#|\+' $_f |awk '{ print $1 }'`)
+ endif
+ end
+ if ( -r $HOME/.netrc ) then
+ set _f=`awk '/machine/ { print $2 }' < $HOME/.netrc` >& /dev/null
+ set hosts=($hosts $_f)
+ endif
+ set hosts=(`echo $hosts localhost $HOSTNAME|tr ' ' '\n'|sort -u -t '.'`)
+ unset _f
+ set _maildir = /var/spool/mail
+ set _ypdir = /var/yp
+ set _domain = "`domainname`"
+ if ($?MANPATH) then
+ set _manpath="{${MANPATH:as/:/,/}}/{man,cat}"
+ else
+ set _manpath="/usr{{/X11/man,/openwin/man}/{man,cat},{/man/{man,cat}}}"
+ endif
+
+ complete ispell c/-/"(a A b B C d D e ee f L m M p s S T v vv w W)"/ \
+ n/-d/"(english deutsch)"/ \
+ n/-T/"(tex plaintex nroff latin1 ascii atari)"/ \
+ n@-p@'`ls -1 $HOME/.ispell_*`'@ \
+ n/-W/"(1 2 3 4 5)"/ \
+ n/-L/x:'ispell -L <number>'/ \
+ n/-f/t/ n/*/f:^*.{dvi,ps,a,o,gz,z,Z}/
+ complete ywho n/*/\$hosts/ # argument from list in $hosts
+ complete {r,s}sh p/1/\$hosts/ c/-/"(l n)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/
+ complete xrsh p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/
+ complete {r,s}login p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/
+ complete xlogin n/*/\$hosts/
+ complete telnet p/1/\$hosts/ p/2/x:'<port>'/ n/*/n/
+ complete xtelnet n/*/\$hosts/
+ complete cd p/1/d/ # Directories only
+ complete chdir p/1/d/
+ complete pushd p/1/d/
+ complete popd p/1/d/
+ complete pu p/1/d/
+ complete po p/1/d/
+ complete complete p/1/X/ # Completions only
+ complete uncomplete n/*/X/
+ complete exec p/1/c/ # Commands only
+ complete trace p/1/c/
+ complete strace p/1/c/
+ complete which n/*/c/
+ complete where n/*/c/
+ complete skill p/1/c/
+ complete dde p/1/c/
+ complete adb c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/
+ complete sdb p/1/c/
+ complete dbx c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/
+ complete xdb p/1/c/
+ complete gdb n/-d/d/ n/*/c/
+ complete ups p/1/c/
+ complete set 'c/*=/f/' 'p/1/s/=' 'n/=/f/'
+ complete unset n/*/s/
+ complete alias p/1/a/ # only aliases are valid
+ complete unalias n/*/a/
+ complete xdvi n/*/f:*.dvi/ # Only files that match *.dvi
+ complete laser n/*/f:*.dvi/
+ complete dvips n/*/f:*.dvi/
+ complete tex n/*/f:*.{tex,TEX}/ # Only files that match *.tex
+ complete latex n/*/f:*.{tex,TEX,texi,latex,ltx}/
+ complete slitex n/*/f:*.{tex,TEX,latex,ltx}/
+ complete su c/--/"(login fast preserve-environment command shell \
+ help version)"/ c/-/"(f l m p c s -)"/ \
+ n/{-c,--command}/c/ \
+ n@{-s,--shell}@'`cat /etc/shells`'@ n/*/u/
+ complete cc c/-[IL]/d/ \
+ c@-l@'`\ls -1 /usr/lib/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \
+ c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/
+ complete acc c/-[IL]/d/ \
+ c@-l@'`\ls -1 /usr/lang/SC1.0/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \
+ c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/
+ complete gcc c/-[IL]/d/ \
+ c/-f/"(caller-saves cse-follow-jumps delayed-branch \
+ elide-constructors expensive-optimizations \
+ float-store force-addr force-mem inline \
+ inline-functions keep-inline-functions \
+ memoize-lookups no-default-inline \
+ no-defer-pop no-function-cse omit-frame-pointer \
+ rerun-cse-after-loop schedule-insns \
+ schedule-insns2 strength-reduce \
+ thread-jumps unroll-all-loops \
+ unroll-loops syntax-only all-virtual \
+ cond-mismatch dollars-in-identifiers \
+ enum-int-equiv no-asm no-builtin \
+ no-strict-prototype signed-bitfields \
+ signed-char this-is-variable unsigned-bitfields \
+ unsigned-char writable-strings call-saved-reg \
+ call-used-reg fixed-reg no-common \
+ no-gnu-binutils nonnull-objects \
+ pcc-struct-return pic PIC shared-data \
+ short-enums short-double volatile)"/ \
+ c/-W/"(all aggregate-return cast-align cast-qual \
+ comment conversion enum-clash error format \
+ id-clash-len implicit missing-prototypes \
+ no-parentheses pointer-arith return-type shadow \
+ strict-prototypes switch uninitialized unused \
+ write-strings)"/ \
+ c/-m/"(68000 68020 68881 bitfield fpa nobitfield rtd \
+ short c68000 c68020 soft-float g gnu unix fpu \
+ no-epilogue)"/ \
+ c/-d/"(D M N)"/ \
+ c/-/"(f W vspec v vpath ansi traditional \
+ traditional-cpp trigraphs pedantic x o l c g L \
+ I D U O O2 C E H B b V M MD MM i dynamic \
+ nodtdlib static nostdinc undef)"/ \
+ c/-l/f:*.a/ \
+ n/*/f:*.{c,C,cc,o,a,s,i}/
+ complete g++ n/*/f:*.{C,cc,cpp,o,s,i}/
+ complete CC n/*/f:*.{C,cc,cpp,o,s,i}/
+ complete rm c/--/"(directory force interactive verbose \
+ recursive help version)"/ c/-/"(d f i v r R -)"/ \
+ n/*/f:^*.{c,cc,C,h,in}/ # Protect precious files
+ complete {vi,more} n/*/f:^*.{o,a,dvi,gz,z,Z}/
+ complete less n/*/f:^*.{o,a,dvi}/
+ complete bindkey N/-a/b/ N/-c/c/ n/-[ascr]/'x:<key-sequence>'/ \
+ n/-[svedlr]/n/ c/-[vedl]/n/ c/-/"(a s k c v e d l r)"/ \
+ n/-k/"(left right up down)"/ p/2-/b/ \
+ p/1/'x:<key-sequence or option>'/
+
+ complete find n/-fstype/"(nfs 4.2)"/ n/-name/f/ \
+ n/-type/"(c b d f p l s)"/ n/-user/u/ n/-group/g/ \
+ n/-exec/c/ n/-ok/c/ n/-cpio/f/ n/-ncpio/f/ n/-newer/f/ \
+ c/-/"(follow fstype name perm prune type user nouser \
+ group nogroup size inum atime mtime ctime exec \
+ ok print ls cpio ncpio newer xdev depth \
+ daystart follow maxdepth mindepth noleaf version \
+ anewer cnewer amin cmin mmin true false uid gid \
+ ilname iname ipath iregex links lname empty path \
+ regex used xtype fprint fprint0 fprintf \
+ print0 printf not a and o or)"/ \
+ n/*/d/
+
+ complete -%* c/%/j/ # fill in the jobs builtin
+ complete {fg,bg,stop} c/%/j/ p/1/"(%)"//
+
+ complete limit c/-/"(h)"/ n/*/l/
+ complete unlimit c/-/"(h)"/ n/*/l/
+
+ complete -co* p/0/"(compress)"/ # make compress completion
+ # not ambiguous
+ complete nm n/*/f:^*.{h,C,c,cc}/
+
+ complete finger c/*@/\$hosts/ n/*/u/@
+ complete ping p/1/\$hosts/
+ complete traceroute p/1/\$hosts/
+
+ complete {talk,ntalk,phone,otalk,ytalk} p/1/'`users | tr " " "\012" | uniq`'/ \
+ n/*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/
+
+ complete ftp c/-/"(d i g n v)"/ n/-/\$hosts/ p/1/\$hosts/ n/*/n/
+ complete ncftp c/-/"(a I N)"/ n/-/\$hosts/ p/1/\$hosts/ n/*/n/
+
+ # this one is simple...
+ #complete rcp c/*:/f/ C@[./\$~]*@f@ n/*/\$hosts/:
+ # From Michael Schroeder <mlschroe@immd4.informatik.uni-erlangen.de>
+ # This one will rsh to the file to fetch the list of files!
+ complete 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/:'
+ complete scp 'c%*@*:%`set q=$:-0;set q="$q:s/@/ /";set q="$q:s/:/ /";set q=($q " ");ssh $q[2] -l $q[1] ls -dp $q[3]\*`%' 'c%*:%`set q=$:-0;set q="$q:s/:/ /";set q=($q " ");ssh $q[1] ls -dp $q[2]\*`%' 'c%*@%$hosts%:' 'C@[./$~]*@f@' 'n/*/$hosts/:'
+
+ complete dd c/--/"(help version)"/ c/[io]f=/f/ \
+ c/conv=*,/"(ascii ebcdic ibm block unblock \
+ lcase notrunc ucase swab noerror sync)"/,\
+ c/conv=/"(ascii ebcdic ibm block unblock \
+ lcase notrunc ucase swab noerror sync)"/,\
+ c/*=/x:'<number>'/ \
+ n/*/"(if of conv ibs obs bs cbs files skip file seek count)"/=
+
+ complete nslookup p/1/x:'<host>'/ p/2/\$hosts/
+
+ complete ar c/[dmpqrtx]/"(c l o u v a b i)"/ p/1/"(d m p q r t x)"// \
+ p/2/f:*.a/ p/*/f:*.o/
+
+ # these should be merged with the MH completion hacks below - jgotts
+ complete {sprev,snext} \
+ c@+@F:$HOME/Mail/@
+
+ # these and interrupt handling from Jaap Vermeulen <jaap@sequent.com>
+ complete {rexec,rxexec,rxterm,rmterm} \
+ 'p/1/$hosts/' 'c/-/(l L E)/' 'n/-l/u/' 'n/-L/f/' \
+ 'n/-E/e/' 'n/*/c/'
+ complete kill 'c/-/S/' 'c/%/j/' 'n/*/`ps xh | cut -d " " -f 1`/'
+
+ # these from Marc Horowitz <marc@cam.ov.com>
+ complete attach 'n/-mountpoint/d/' 'n/-m/d/' 'n/-type/(afs nfs rvd ufs)/' \
+ 'n/-t/(afs nfs rvd ufs)/' 'n/-user/u/' 'n/-U/u/' \
+ 'c/-/(verbose quiet force printpath lookup debug map \
+ nomap remap zephyr nozephyr readonly write \
+ mountpoint noexplicit explicit type mountoptions \
+ nosetuid setuid override skipfsck lock user host)/' \
+ 'n/-e/f/' 'n/*/()/'
+ complete hesinfo 'p/1/u/' \
+ 'p/2/(passwd group uid grplist pcap pobox cluster \
+ filsys sloc service)/'
+
+ # these from E. Jay Berkenbilt <ejb@ERA.COM>
+ # = isn't always followed by a filename or a path anymore - jgotts
+ complete ./configure 'c/--*=/f/' 'c/--{cache-file,prefix,exec-prefix,\
+ bindir,sbindir,libexecdir,datadir,\
+ sysconfdir,sharedstatedir,localstatedir,\
+ libdir,includedir,oldincludedir,infodir,\
+ mandir,srcdir}/(=)//' \
+ 'c/--/(cache-file verbose prefix exec-prefix bindir \
+ sbindir libexecdir datadir sysconfdir \
+ sharedstatedir localstatedir libdir \
+ includedir oldincludedir infodir mandir \
+ srcdir)//'
+ complete gs 'c/-sDEVICE=/(x11 cdjmono cdj550 epson eps9high epsonc \
+ dfaxhigh dfaxlow laserjet ljet4 sparc pbm \
+ pbmraw pgm pgmraw ppm ppmraw bit)/' \
+ 'c/-sOutputFile=/f/' 'c/-s/(DEVICE OutputFile)/=' \
+ 'c/-d/(NODISPLAY NOPLATFONTS NOPAUSE)/' 'n/*/f/'
+ complete perl 'n/-S/c/'
+ complete printenv 'n/*/e/'
+ complete sccs p/1/"(admin cdc check clean comb deledit delget \
+ delta diffs edit enter fix get help info \
+ print prs prt rmdel sccsdiff tell unedit \
+ unget val what)"/
+
+ # Complete for MH tools already skipped
+ if ( $?SKIP_MH ) goto skip_mh
+
+ # Do not be fooled by asking MH tools
+ if ( ! -r $HOME/.mh_profile ) goto skip_mh
+
+ # Do not be fooled by broken MH profile
+ if ( ! `grep -cE '^Path:' $HOME/.mh_profile` ) goto skip_mh
+
+ if ( ! $?FOLDERS ) then
+ which folders >& /dev/null
+ if ( $status != 0 ) goto skip_mh
+
+ set folders="`/bin/sh -c 'exec folders -fast -recurse < /dev/null 2> /dev/null'`"
+ if ( $status != 0 ) then
+ unset folders
+ setenv SKIP_MH
+ goto skip_mh
+ endif
+ setenv FOLDERS "$folders"
+ endif
+
+ if ( ! $?MHA ) then
+ which ali >& /dev/null
+ if ( $status != 0 ) goto skip_mh
+
+ set mha="`/bin/sh -c 'exec ali < /dev/null 2> /dev/null'`"
+ if ( $status != 0 ) then
+ unset mha
+ setenv SKIP_MH
+ goto skip_mh
+ endif
+ setenv MHA "$mha"
+ endif
+
+ # these and method of setting hosts from Kimmo Suominen <kim@tac.nyc.ny.us>
+ set folders = ( $FOLDERS )
+ set mha = ( $MHA )
+
+ complete ali \
+ 'c/-/(alias nolist list nonormalize normalize nouser user help)/' \
+ 'n,-alias,f,'
+
+ complete anno \
+ 'c/-/(component noinplace inplace nodate date text help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete burst \
+ 'c/-/(noinplace inplace noquiet quiet noverbose verbose help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete comp \
+ 'c/-/(draftfolder draftmessage nodraftfolder editor noedit file form nouse use whatnowproc nowhatnowproc help)/' \
+ 'c,+,$folders,' \
+ 'n,-whatnowproc,c,' \
+ 'n,-file,f,'\
+ 'n,-form,f,'\
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete dist \
+ 'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit form noinplace inplace whatnowproc nowhatnowproc help)/' \
+ 'c,+,$folders,' \
+ 'n,-whatnowproc,c,' \
+ 'n,-form,f,'\
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete folder \
+ 'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete folders \
+ 'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete forw \
+ 'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit filter form noformat format noinplace inplace digest issue volume whatnowproc nowhatnowproc help)/' \
+ 'c,+,$folders,' \
+ 'n,-whatnowproc,c,' \
+ 'n,-filter,f,'\
+ 'n,-form,f,'\
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete inc \
+ 'c/-/(audit file noaudit nochangecur changecur file form format nosilent silent notruncate truncate width help)/' \
+ 'c,+,$folders,' \
+ 'n,-audit,f,'\
+ 'n,-form,f,'
+
+ complete mark \
+ 'c/-/(add delete list sequence nopublic public nozero zero help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete mhmail \
+ 'c/-/(body cc from subject help)/' \
+ 'n,-cc,$mha,' \
+ 'n,-from,$mha,' \
+ 'n/*/$mha/'
+
+ complete mhpath \
+ 'c/-/(help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete msgchk \
+ 'c/-/(nodate date nonotify notify help)/'
+
+ complete msh \
+ 'c/-/(prompt noscan scan notopcur topcur help)/'
+
+ complete next \
+ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \
+ 'c,+,$folders,' \
+ 'n,-moreproc,c,' \
+ 'n,-showproc,c,' \
+ 'n,-form,f,'
+
+ complete packf \
+ 'c/-/(file help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete pick \
+ 'c/-/(and or not lbrace rbrace cc date from search subject to othercomponent after before datefield sequence nopublic public nozero zero nolist list help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete prev \
+ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \
+ 'c,+,$folders,' \
+ 'n,-moreproc,c,' \
+ 'n,-showproc,c,' \
+ 'n,-form,f,'
+
+ complete prompter \
+ 'c/-/(erase kill noprepend prepend norapid rapid nodoteof doteof help)/'
+
+ complete refile \
+ 'c/-/(draft nolink link nopreserve preserve src file help)/' \
+ 'c,+,$folders,' \
+ 'n,-file,f,'\
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete rmf \
+ 'c/-/(nointeractive interactive help)/' \
+ 'c,+,$folders,'
+
+ complete rmm \
+ 'c/-/(help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete scan \
+ 'c/-/(noclear clear form format noheader header width noreverse reverse file help)/' \
+ 'c,+,$folders,' \
+ 'n,-form,f,'\
+ 'n,-file,f,'\
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete send \
+ 'c/-/(alias draft draftfolder draftmessage nodraftfolder filter nofilter noformat format noforward forward nomsgid msgid nopush push noverbose verbose nowatch watch width help)/' \
+ 'n,-alias,f,'\
+ 'n,-filter,f,'
+
+ complete show \
+ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \
+ 'c,+,$folders,' \
+ 'n,-moreproc,c,' \
+ 'n,-showproc,c,' \
+ 'n,-form,f,'\
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete sortm \
+ 'c/-/(datefield textfield notextfield limit nolimit noverbose verbose help)/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete vmh \
+ 'c/-/(prompt vmhproc novmhproc help)/' \
+ 'n,-vmhproc,c,'
+
+ complete whatnow \
+ 'c/-/(draftfolder draftmessage nodraftfolder editor noedit prompt help)/'
+
+ complete whom \
+ 'c/-/(alias nocheck check draft draftfolder draftmessage nodraftfolder help)/' \
+ 'n,-alias,f,'
+
+ complete plum \
+ 'c/-/()/' \
+ 'c,+,$folders,' \
+ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\n" | sort -u`,'
+
+ complete mail \
+ 'c/-/()/' \
+ 'n/*/$mha/'
+
+skip_mh:
+
+ # from George Cox
+ complete acroread 'p/*/f:*.{pdf,PDF}/'
+ complete apachectl 'c/*/(start stop restart fullstatus status graceful \
+ configtest help)/'
+ complete appletviewer 'p/*/f:*.class/'
+ complete bison 'c/--/(debug defines file-prefix= fixed-output-files \
+ help name-prefix= no-lines no-parser output= \
+ token-table verbose version yacc)/' \
+ 'c/-/(b d h k l n o p t v y V)/' 'n/-b/f/' 'n/-o/f/' \
+ 'n/-p/f/'
+ complete bunzip2 'p/*/f:*.bz2/'
+ complete bzip2 'n/-9/f:^*.bz2/' 'n/-d/f:*.bz2/'
+ complete c++ 'p/*/f:*.{c++,cxx,c,cc,C,cpp}/'
+ complete co 'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@'
+ complete crontab 'n/-u/u/'
+ complete camcontrol 'p/1/(cmd debug defects devlist eject inquiry \
+ modepage negotiate periphlist rescan reset start \
+ stop tags tur)/'
+ complete ctlinnd 'p/1/(addhist allow begin cancel changegroup \
+ checkfile drop feedinfo flush flushlogs go hangup \
+ logmode mode name newgroup param pause readers refile \
+ reject reload renumber reserve rmgroup send shutdown \
+ kill throttle trace xabort xexec)/'
+ complete cvs 'c/--/(help help-commands help-synonyms)/' \
+ 'p/1/(add admin annotate checkout commit diff \
+ edit editors export history import init log login \
+ logout rdiff release remove rtag status tag unedit \
+ update watch watchers)/' 'n/-a/(edit unedit commit \
+ all none)/' 'n/watch/(on off add remove)/'
+ complete cxx 'p/*/f:*.{c++,cxx,c,cc,C,cpp}/'
+ complete detex 'p/*/f:*.tex/'
+ complete edquota 'n/*/u/'
+ complete exec 'p/1/c/'
+ complete ghostview 'p/*/f:*.{eps,EPS,ps,PS,pdf,PDF,ps.gz}/'
+ complete gv 'p/*/f:*.{eps,EPS,ps,PS,pdf,PDF,ps.gz}/'
+ complete ifconfig 'p@1@`ifconfig -l`@' 'n/*/(range phase link netmask \
+ mtu vlandev vlan metric mediaopt down delete \
+ broadcast arp debug)/'
+ complete imake 'c/-I/d/'
+ complete ipfw 'p/1/(flush add delete list show zero)/' \
+ 'n/add/(allow permit accept pass deny drop reject \
+ reset count skipto num divert port tee port)/'
+ complete javac 'p/*/f:*.java/'
+ complete ldif2ldbm 'n/-i/f:*.ldif/'
+ complete libtool 'c/--mode=/(compile execute finish install link \
+ uninstall)/' 'c/--/(config debug dry-run features \
+ finish help quiet silent version mode=)/'
+ complete libtoolize 'c/--/(automake copy debug dry-run force help ltdl \
+ ltdl-tar version)/'
+ complete links 'c/-/(assume-codepage async-dns download-dir \
+ format-cache-size ftp-proxy help http-proxy \
+ max-connections max-connections-to-host \
+ memory-cache-size receive-timeout retries \
+ unrestartable-receive-timeout version)/'
+ complete natd c/-/'(alias_address config deny_incoming dynamic \
+ inport interface log log_denied log_facility \
+ outport outport port pptpalias proxy_only \
+ proxy_rule redirect_address redirect_port \
+ reverse same_ports unregistered_only use_sockets \
+ verbose)'/ 'n@-interface@`ifconfig -l`@'
+ complete netstat 'n@-I@`ifconfig -l`@'
+ complete objdump 'c/--/(adjust-vma= all-headers architecture= \
+ archive-headers debugging demangle disassemble \
+ disassemble-all disassemble-zeroes dynamic-reloc \
+ dynamic-syms endian= file-headers full-contents \
+ headers help info line-numbers no-show-raw-insn \
+ prefix-addresses private-headers reloc section-headers \
+ section=source stabs start-address= stop-address= \
+ syms target= version wide)/' \
+ 'c/-/(a h i f C d D p r R t T x s S l w)/'
+ complete xmodmap 'c/-/(display help grammar verbose quiet n e pm pk \
+ pke pp)/'
+ complete lynx 'c/-/(accept_all_cookies anonymous assume_charset= \
+ assume_local_charset= assume_unrec_charset= auth= base \
+ book buried_news cache= case cfg= child cookie_file= \
+ cookies core crawl debug_partial display= dump editor= \
+ emacskeys enable_scrollback error_file= force_html \
+ force_secure forms_options from ftp get_data head help \
+ hiddenlinks= historical homepage= image_links index= \
+ ismap link= localhost mime_header minimal \
+ newschunksize= newsmaxchunk= nobrowse nocc nocolor \
+ nofilereferer nolist nolog nopause noprint noredir \
+ noreferer nostatus number_links partial partial_thres \
+ pauth= popup post_data preparsed print pseudo_inlines \
+ raw realm reload restrictions= resubmit_posts rlogin \
+ selective show_cursor soft_dquotes source stack_dump \
+ startfile_ok tagsoup telnet term= tlog trace traversal \
+ underscore useragent= validate verbose version vikeys \
+ width=)/' 'c/(http|ftp)/$URLS/'
+ complete {gmake,make} \
+ 'c/{--directory,--include-dir}=/d/' 'c/{-C,-I}/d/' \
+ 'c/{--assume-new,--assume-old,--makefile,--new-file,--what-if,--file}=/f/' \
+ 'c/{-W,-o,-f}/f/' \
+ 'c/--/(assume-new= assume-old= debug directory= \
+ dry-run environment-overrides file= help \
+ ignore-errors include-dir= jobs[=N] just-print \
+ keep-going load-average[=N] makefile= max-load[=N] \
+ new-file= no-builtin-rules no-keep-going \
+ no-print-directory old-file= print-data-base \
+ print-directory question quiet recon silent stop \
+ touch version warn-undefined-variables what-if=)//' \
+ 'c/-/(- C d e f h i I k n p q r R s S t v w)/' \
+ 'n@*@`cat -s {GNUm,M,m}akefile |& sed -n -e "/cat:/d" -e "s/^\([A-Za-z0-9-]*\):.*/\1/p"`@' \
+ 'n/=/f/' 'n/-f/f/'
+ complete mixer p/1/'(vol bass treble synth pcm speaker mic cd mix \
+ pcm2 rec igain ogain line1 line2 line3)'/ \
+ p@2@'`mixer $:-1 | awk \{\ print\ \$7\ \}`'@
+
+ complete mpg123 'c/--/(2to1 4to1 8bit aggressive au audiodevice \
+ auth buffer cdr check doublespeed equalizer frames \
+ gain halfspeed headphones left lineout list mix mono \
+ proxy quiet random rate reopen resync right scale \
+ shuffle single0 single1 skip speaker stdout stereo \
+ test verbose wav)/'
+ complete mysqladmin 'n/*/(create drop extended-status flush-hosts \
+ flush-logs flush-status flush-tables flush-privileges \
+ kill password ping processlist reload refresh \
+ shutdown status variables version)/'
+ set _muttalias=/dev/null
+ foreach _f ($HOME/.muttrc-alias $HOME/.muttalias)
+ if ( -r $_f ) then
+ set _muttalias=$_f
+ break
+ endif
+ end
+ unset _f
+ complete mutt c@-f=@F:${HOME}/Mail/@ \
+ n/-a/f/ \
+ n/-F/f/ n/-H/f/ \
+ n/-s/x:'<subject line>'/ \
+ n/-e/x:'<command>'/ \
+ n@-b@'`awk '"'"'{print $2 }'"'"' $_muttalias`'@ \
+ n@-c@'`awk '"'"'{print $2 }'"'"' $_muttalias`'@ \
+ n@*@'` awk '"'"'{print $2 }'"'"' $_muttalias`'@
+ complete ndc 'n/*/(status dumpdb reload stats trace notrace \
+ querylog start stop restart )/'
+ complete nm 'c/--/(debug-syms defined-only demangle dynamic \
+ extern-only format= help line-numbers no-demangle \
+ no-sort numeric-sort portability print-armap \
+ print-file-name reverse-sort size-sort undefined-only \
+ version)/' 'p/*/f:^*.{h,C,c,cc}/'
+ complete nmap 'n@-e@`ifconfig -l`@' 'p/*/$hostnames/'
+ complete perldoc 'n@*@`\ls -1 /usr/lib/perl*/5.*/pod | sed s%\\.pod.\*\$%%`@'
+ complete postfix 'n/*/(start stop reload abort flush check)/'
+ complete postmap 'n/1/(hash: regexp:)' 'c/hash:/f/' 'c/regexp:/f/'
+ complete rcsdiff 'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@'
+ complete X 'c/-/(I a ac allowMouseOpenFail allowNonLocalModInDev \
+ allowNonLocalXvidtune ar1 ar2 audit auth bestRefresh \
+ bgamma bpp broadcast bs c cc class co core deferglyphs \
+ disableModInDev disableVidMode displayID dpi dpms f fc \
+ flipPixels fn fp gamma ggamma help indirect kb keeptty \
+ ld lf logo ls nolisten string noloadxkb nolock nopn \
+ once p pn port probeonly query quiet r rgamma s \
+ showconfig sp su t terminate to tst v verbose version \
+ weight wm x xkbdb xkbmap)/'
+ complete vidcontrol 'p/1/(132x25 132x30 132x43 132x50 132x60 40x25 80x25 \
+ 80x30 80x43 80x50 80x60 EGA_80x25 EGA_80x43 \
+ VESA_132x25 VESA_132x30 VESA_132x43 VESA_132x50 \
+ VESA_132x60 VESA_800x600 VGA_320x200 VGA_40x25 \
+ VGA_80x25 VGA_80x30 VGA_80x50 VGA_80x60)/'
+ complete vim 'n/*/f:^*.[oa]/'
+ complete where 'n/*/c/'
+ complete which 'n/*/c/'
+ complete wmsetbg 'c/-/(display D S a b c d e m p s t u w)/' \
+ 'c/--/(back-color center colors dither help match \
+ maxscale parse scale smooth tile update-domain \
+ update-wmaker version workspace)/'
+ complete xdb 'p/1/c/'
+ complete xdvi 'c/-/(allowshell debug display expert gamma hushchars \
+ hushchecksums hushspecials install interpreter keep \
+ margins nogrey noinstall nomakepk noscan paper safer \
+ shrinkbuttonn thorough topmargin underlink version)/' \
+ 'n/-paper/(a4 a4r a5 a5r)/' 'p/*/f:*.dvi/'
+ complete xlock 'c/-/(allowaccess allowroot debug description \
+ echokeys enablesaver grabmouse grabserver hide inroot \
+ install inwindow mono mousemotion nolock remote \
+ resetsaver sound timeelapsed use3d usefirst verbose \
+ wireframe background batchcount bg bitmap both3d \
+ count cycles delay delta3d display dpmsoff \
+ dpmsstandby dpmssuspend endCmd erasedelay erasemode \
+ erasetime fg font foreground geometry help \
+ icongeometry info invalid left3d lockdelay logoutCmd \
+ mailCmd mailIcon message messagefile messagefont \
+ messagesfile mode name ncolors nice nomailIcon none3d \
+ parent password planfont program resources right3d \
+ saturation size startCmd timeout username validate \
+ version visual)/' 'n/-mode/(ant atlantis ball bat \
+ blot bouboule bounce braid bubble bubble3d bug cage \
+ cartoon clock coral crystal daisy dclock decay deco \
+ demon dilemma discrete drift eyes fadeplot flag flame \
+ flow forest galaxy gears goop grav helix hop hyper \
+ ico ifs image invert julia kaleid kumppa lament laser \
+ life life1d life3d lightning lisa lissie loop lyapunov \
+ mandelbrot marquee matrix maze moebius morph3d \
+ mountain munch nose pacman penrose petal pipes puzzle \
+ pyro qix roll rotor rubik shape sierpinski slip sphere \
+ spiral spline sproingies stairs star starfish strange \
+ superquadrics swarm swirl tetris thornbird triangle \
+ tube turtle vines voters wator wire world worm xjack \
+ blank bomb random)/'
+ complete xfig 'c/-/(display)/' 'p/*/f:*.fig/'
+ complete wget c/--/"(accept= append-output= background cache= \
+ continue convert-links cut-dirs= debug \
+ delete-after directory-prefix= domains= \
+ dont-remove-listing dot-style= exclude-directories= \
+ exclude-domains= execute= follow-ftp \
+ force-directories force-html glob= header= help \
+ http-passwd= http-user= ignore-length \
+ include-directories= input-file= level= mirror \
+ no-clobber no-directories no-host-directories \
+ no-host-lookup no-parent non-verbose \
+ output-document= output-file= passive-ftp \
+ proxy-passwd= proxy-user= proxy= quiet quota= \
+ recursive reject= relative retr-symlinks save-headers \
+ server-response span-hosts spider timeout= \
+ timestamping tries= user-agent= verbose version wait=)"/
+
+ # More completions from waz@quahog.nl.nuwc.navy.mil (Tom Warzeka)
+ # this one works but is slow and doesn't descend into subdirectories
+ # complete cd C@[./\$~]*@d@ \
+ # p@1@'`\ls -1F . $cdpath | grep /\$ | sort -u`'@ n@*@n@
+
+ if ( -r /etc/shells ) then
+ complete setenv p@1@e@ n@DISPLAY@\$hosts@: n@SHELL@'`cat /etc/shells`'@ 'c/*:/f/'
+ else
+ complete setenv p@1@e@ n@DISPLAY@\$hosts@: 'c/*:/f/'
+ endif
+ complete unsetenv n/*/e/
+
+ if (-r $HOME/.mailrc) then
+ complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \
+ c@+@F:$HOME/Mail@ C@[./\$~]@f@ n/-s/x:'<subject>'/ \
+ n@-u@T:$_maildir@ n/-f/f/ \
+ n@*@'`sed -n s/alias//p $HOME/.mailrc | tr -s " " "\t" | cut -f 2`'@
+ else
+ complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \
+ c@+@F:$HOME/Mail@ C@[./\$~]@f@ n/-s/x:'<subject>'/ \
+ n@-u@T:$_maildir@ n/-f/f/ n/*/u/
+ endif
+
+
+ complete man n@[0-9n]@'`\ls -1fUA ${_manpath}$:-1/|&\sed \\%.\*:%d\;s%\\.$:-1.\*\$%%|\sort -u`'@ \
+ c/-/"(- f k s t l)"/ n/-f/c/ n/-k/x:'<keyword>'/ n/-l/f/ n/*/c/
+
+ complete ps c/-t/x:'<tty>'/ c/-/"(a c C e g k l S t u v w x)"/ \
+ n/-k/x:'<kernel>'/ N/-k/x:'<core_file>'/ n/*/x:'<PID>'/
+ complete compress c/-/"(c f v b)"/ n/-b/x:'<max_bits>'/ n/*/f:^*.Z/
+ complete uncompress c/-/"(c f v)"/ n/*/f:*.Z/
+ complete psompress c/-/"(d c f)"/ n/*/f:^*.Z/
+
+ complete uuencode p/1/f/ p/2/x:'<decode_pathname>'/ n/*/n/
+ complete uudecode c/-/"(f)"/ n/-f/f:*.{uu,UU}/ p/1/f:*.{uu,UU}/ n/*/n/
+
+ complete xhost c/[+-]/\$hosts/ n/*/\$hosts/
+
+ complete emacs c/-/"(batch d f funcall i insert kill l load \
+ no-init-file nw q t u user)"/ c/+/x:'<line_number>'/ \
+ n/-d/x:'<display>'/ n/-f/x:'<lisp_function>'/ n/-i/f/ \
+ n@-l@F:/usr/share/emacs/@ \
+ n/-t/x:'<terminal>'/ \
+ n/-u/u/ n/*/f:^*{[\#~],.dvi,.o,.gz,.Z,.z,.zip}/
+
+ complete zcat c/--/"(force help license quiet version)"/ \
+ c/-/"(f h L q V -)"/ n/*/f:*.{gz,Z,z,zip}/
+ complete gzip c/--/"(stdout to-stdout decompress uncompress \
+ force help list license no-name quiet recurse \
+ suffix test verbose version fast best)"/ \
+ c/-/"(c d f h l L n q r S t v V 1 2 3 4 5 6 7 8 9 -)"/ \
+ n/{-S,--suffix}/x:'<file_name_suffix>'/ \
+ n/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \
+ N/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \
+ n/*/f:^*.{gz,Z,z,zip,taz,tgz}/
+ complete {gunzip,ungzip} c/--/"(stdout to-stdout force help list license \
+ no-name quiet recurse suffix test verbose version)"/ \
+ c/-/"(c f h l L n q r S t v V -)"/ \
+ n/{-S,--suffix}/x:'<file_name_suffix>'/ \
+ n/*/f:*.{gz,Z,z,zip,taz,tgz,tar.gz}/
+ complete zgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/ \
+ c/-/"(A b B c C e f h i l n s v V w x)"/ \
+ p/1/x:'<limited_regular_expression>'/ N/-*e/f/ \
+ n/-*e/x:'<limited_regular_expression>'/ n/-*f/f/ n/*/f/
+ complete zegrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/ \
+ c/-/"(A b B c C e f h i l n s v V w x)"/ \
+ p/1/x:'<full_regular_expression>'/ N/-*e/f/ \
+ n/-*e/x:'<full_regular_expression>'/ n/-*f/f/ n/*/f/
+ complete zfgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/ \
+ c/-/"(A b B c C e f h i l n s v V w x)"/ \
+ p/1/x:'<fixed_string>'/ N/-*e/f/ \
+ n/-*e/x:'<fixed_string>'/ n/-*f/f/ n/*/f/
+ complete znew c/-/"(f t v 9 P K)"/ n/*/f:*.Z/
+ complete zmore n/*/f:*.{gz,Z,z,zip,bz2}/
+ complete zfile n/*/f:*.{gz,Z,z,zip,taz,tgz}/
+ complete ztouch n/*/f:*.{gz,Z,z,zip,taz,tgz}/
+ complete zforce n/*/f:^*.{gz,taz,tgz}/
+
+ complete grep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/ \
+ c/--/"(extended-regexp fixed-regexp basic-regexp \
+ regexp file ignore-case word-regexp line-regexp \
+ no-messages revert-match version help byte-offset \
+ line-number with-filename no-filename quiet silent \
+ text directories recursive files-without-match \
+ files-with-matches count before-context after-context \
+ context binary unix-byte-offsets)"/ \
+ 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 v w x)"/ \
+ p/1/x:'<limited_regular_expression>'/ N/-*e/f/ \
+ n/-*e/x:'<limited_regular_expression>'/ n/-*f/f/ n/*/f/
+ complete egrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/ \
+ c/--/"(extended-regexp fixed-regexp basic-regexp \
+ regexp file ignore-case word-regexp line-regexp \
+ no-messages revert-match version help byte-offset \
+ line-number with-filename no-filename quiet silent \
+ text directories recursive files-without-match \
+ files-with-matches count before-context after-context \
+ context binary unix-byte-offsets)"/ \
+ 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 v w x)"/ \
+ p/1/x:'<full_regular_expression>'/ N/-*e/f/ \
+ n/-*e/x:'<full_regular_expression>'/ n/-*f/f/ n/*/f/
+ complete fgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/ \
+ c/--/"(extended-regexp fixed-regexp basic-regexp \
+ regexp file ignore-case word-regexp line-regexp \
+ no-messages revert-match version help byte-offset \
+ line-number with-filename no-filename quiet silent \
+ text directories recursive files-without-match \
+ files-with-matches count before-context after-context \
+ context binary unix-byte-offsets)"/ \
+ 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 v w x)"/ \
+ p/1/x:'<fixed_string>'/ N/-*e/f/ \
+ n/-*e/x:'<fixed_string>'/ n/-*f/f/ n/*/f/
+
+ complete users c/--/"(help version)"/ p/1/x:'<accounting_file>'/
+ complete who c/--/"(heading mesg idle count help message version \
+ writable)"/ c/-/"(H T w i u m q s -)"/ \
+ p/1/x:'<accounting_file>'/ n/am/"(i)"/ n/are/"(you)"/
+
+ complete chown c/--/"(changes dereference no-dereference silent \
+ quiet reference recursive verbose help version)"/ \
+ c/-/"(c f h R v -)"/ C@[./\$~]@f@ c/*[.:]/g/ \
+ n/-/u/: p/1/u/. n/*/f/
+ complete chgrp c/--/"(changes no-dereference silent quiet reference \
+ recursive verbose help version)"/ \
+ c/-/"(c f h R v -)"/ n/-/g/ p/1/g/ n/*/f/
+ complete chmod c/--/"(changes silent quiet verbose reference \
+ recursive help version)"/ c/-/"(c f R v)"/
+ complete df c/--/"(all block-size human-readable si inodes \
+ kilobytes local megabytes no-sync portability sync \
+ type print-type exclude-type help version)"/ \
+ c/-/"(a H h i k l m P T t v x)"/
+ complete du c/--/"(all block-size bytes total dereference-args \
+ human-readable si kilobytes count-links dereference \
+ megabytes separate-dirs summarize one-file-system \
+ exclude-from exclude max-depth help version"/ \
+ c/-/"(a b c D H h k L l m S s X x)"/
+
+ complete cat c/--/"(number-nonblank number squeeze-blank show-all \
+ show-nonprinting show-ends show-tabs help version)"/ \
+ c/-/"(b e n s t u v A E T -)"/ n/*/f/
+ complete mv c/--/"(backup force interactive update verbose suffix \
+ version-control help version)"/ \
+ c/-/"(b f i u v S V -)"/ \
+ n/{-S,--suffix}/x:'<suffix>'/ \
+ n/{-V,--version-control}/"(t numbered nil existing \
+ never simple)"/ n/-/f/ N/-/d/ p/3-/d/ n/*/f/
+ complete cp c/--/"(archive backup no-dereference force \
+ interactive link preserve parents sparse recursive \
+ symbolic-link suffix update verbose version-control \
+ one-file-system help version)"/ \
+ c/-/"(a b d f i l P p R r S s u V v x -)"/ \
+ n/-*r/d/ n/{-S,--suffix}/x:'<suffix>'/ \
+ n/{-V,--version-control}/"(t numbered nil existing \
+ never simple)"/ n/-/f/ N/-/d/ p/3-/d/ n/*/f/
+ complete ln c/--/"(backup directory force no-dereference \
+ interactive symbolic suffix verbose version-control \
+ help version)"/ \
+ c/-/"(b d F f i n S s V v -)"/ \
+ n/{-S,--suffix}/x:'<suffix>'/ \
+ n/{-V,--version-control}/"(t numbered nil existing \
+ never simple)"/ n/-/f/ N/-/x:'<link_name>'/ \
+ p/1/f/ p/2/x:'<link_name>'/
+ complete touch c/--/"(date reference time help version)"/ \
+ c/-/"(a c d f m r t -)"/ \
+ n/{-d,--date}/x:'<date_string>'/ \
+ c/--time/"(access atime mtime modify use)"/ \
+ n/{-r,--file}/f/ n/-t/x:'<time_stamp>'/ n/*/f/
+ complete mkdir c/--/"(mode parents verbose help version)"/ \
+ c/-/"(p m -)"/ \
+ n/{-m,--mode}/x:'<mode>'/ n/*/d/
+ complete rmdir c/--/"(ignore-fail-on-non-empty parents verbose help \
+ version)"/ c/-/"(p -)"/ n/*/d/
+
+ complete tar c/-[Acru]*/"(b B C f F g G h i l L M N o P \
+ R S T v V w W X z Z j I)"/ \
+ c/-[dtx]*/"( B C f F g G i k K m M O p P \
+ R s S T v w x X z Z j I)"/ \
+ p/1/"(A c d r t u x -A -c -d -r -t -u -x \
+ --catenate --concatenate --create --diff --compare \
+ --delete --append --list --update --extract --get \
+ --help --version)"/ \
+ c/--/"(catenate concatenate create diff compare \
+ delete append list update extract get atime-preserve \
+ block-size read-full-blocks directory checkpoint file \
+ force-local info-script new-volume-script incremental \
+ listed-incremental dereference ignore-zeros \
+ ignore-failed-read keep-old-files starting-file \
+ one-file-system tape-length modification-time \
+ multi-volume after-date newer old-archive portability \
+ to-stdout same-permissions preserve-permissions \
+ absolute-paths preserve record-number remove-files \
+ same-order preserve-order same-owner sparse \
+ files-from null totals verbose label version \
+ interactive confirmation verify exclude exclude-from \
+ compress uncompress gzip ungzip use-compress-program \
+ block-compress help version)"/ \
+ c/-/"(b B C f F g G h i k K l L m M N o O p P R s S \
+ T v V w W X z Z 0 1 2 3 4 5 6 7 -)"/ \
+ C@[/dev]@f@ \
+ n/-c*{zf,fz}/x:'<new_gziped_tar_file, device_file, or "-">'/ \
+ n/-c*{jf,fj}/x:'<new_bziped_tar_file, device_file, or "-">'/ \
+ n/-c*f/x:'<new_tar_file, device_file, or "-">'/ \
+ n/-[Adrtuxv]*{zf,fz}/f:*.{tar.gz,tgz}/ n/-[Adrtuxv]*{jf,fj}/f:*.tar.bz2/ \
+ n/{-[Adrtuxv]*f,--file}/f:*.tar/ \
+ N/-x*{zf,fz}/'`tar -tzf $:-1`'/ N/-x*{jf,fj}/'`tar -tjf $:-1`'/ \
+ N/{-x*f,--file}/'`tar -tf $:-1`'/ \
+ n/--use-compress-program/c/ \
+ n/{-b,--block-size}/x:'<block_size>'/ \
+ n/{-V,--label}/x:'<volume_label>'/ \
+ n/{-N,--{after-date,newer}}/x:'<date>'/ \
+ n/{-L,--tape-length}/x:'<tape_length_in_kB>'/ \
+ n/{-C,--directory}/d/ \
+ N/{-C,--directory}/'`\ls $:-1`'/ \
+ n/-[0-7]/"(l m h)"/
+
+ complete mount c/-/"(a n v t r w)"/ n/-t/"(minix iso9660 msdos vfat ext2 nfs proc)"/ \
+ 'C@/de@F@' 'C@/*@F@@' 'n@*@`grep -E -v \(^#\|^\$\) /etc/fstab|awk \{\ print\ \$2\ \}`@'
+ complete umount c/-/"(a n t)"/ n/-t/"(minix iso9660 msdos ext2 nfs proc)"/ \
+ n/*/'`mount | cut -d " " -f 3`'/
+
+ # these deal with NIS (formerly YP); if it's not running you don't need 'em
+ complete domainname p@1@D:$_ypdir@" " n@*@n@
+ complete ypcat c@-@"(d k t x)"@ n@-x@n@ n@-d@D:$_ypdir@" " \
+ N@-d@\`\\ls\ -1\ $_ypdir/\$:-1\ \|\&\ sed\ -n\ s%\\\\.by\\[a-z\\]\\\*\\\$%%p\`@ \
+ p/1/"(aliases ethers passwd group hosts netid.byname networks protocols \
+ rpc.byname services)"/
+ complete ypmatch c@-@"(d k t x)"@ n@-x@n@ n@-d@D:$_ypdir@" " \
+ N@-d@\`\\ls\ -1\ $_ypdir/\$:-1\ \|\&\ sed\ -n\ s%\\\\.by\\[a-z\\]\\\*\\\$%%p\`@ \
+ n@-@x:'<key ...>'@ p@1@x:'<key ...>'@ \
+ p/1/"(aliases ethers passwd group hosts netid.byname networks protocols \
+ rpc.byname services)"/
+ complete ypwhich c@-@"(d m t x V1 V2)"@ n@-x@n@ n@-d@D:$_ypdir@" " \
+ n@-m@\`\\ls\ -1\ $_ypdir/$_domain\ \|\&\sed\ -n\ s%\\\\.by\\[a-z\\]\\\*\\\$%%p\`@ \
+ N@-m@n@ n@*@\$hosts@
+
+ # there's no need to clutter the user's shell with these
+ unset _maildir _ypdir _domain
+
+ if ( -r /etc/printcap ) then
+ set printers=(`sed -n -e '/^[^ #][^:]*:/{s/|.*:.*//p;}' /etc/printcap | sort -u`)
+
+ complete lpr 'c/-P/$printers/'
+ complete lpq 'c/-P/$printers/'
+ complete lprm 'c/-P/$printers/'
+ complete lpquota 'p/1/(-Qprlogger)/' 'c/-P/$printers/'
+ complete dvips 'c/-P/$printers/' 'n/-o/f:*.{ps,PS}/' 'n/*/f:*.dvi/'
+ complete dvilj 'p/*/f:*.dvi/'
+ endif
+
+ unset noglob
+#
+# complete.tcsh ends here
+#
--- config/linux
+++ config/linux 2006-04-25 14:58:31.000000000 +0200
@@ -23,7 +23,7 @@
/*
* POSIXSIGS Use the POSIX signal facilities to emulate BSD signals.
*/
-#undef POSIXSIGS
+#define POSIXSIGS
/*
* VFORK This machine has a vfork().
@@ -82,7 +82,7 @@
*
* Note: Linux should work with any SYSVREL < 3.
*/
-#define SYSVREL 0
+#define SYSVREL 2
/*
* YPBUGS Work around Sun YP bugs that cause expansion of ~username
@@ -98,26 +98,65 @@
*/
#define __STRICT_ANSI__
-#define _BSD_SOURCE
-#define _SVID_SOURCE
-#define _POSIX_SOURCE
-#define _XOPEN_SOURCE 500
-#define _GNU_SOURCE
+#ifndef _BSD_SOURCE
+# define _BSD_SOURCE
+#endif
+#ifndef _SVID_SOURCE
+# define _SVID_SOURCE
+#endif
+#ifndef _POSIX_SOURCE
+# define _POSIX_SOURCE
+#endif
+#ifndef _XOPEN_SOURCE
+# define _XOPEN_SOURCE 500
+#endif
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
/*
* Large file support from <features.h>
*/
-#define _LARGEFILE_SOURCE
-#define _LARGEFILE64_SOURCE
-#define _FILE_OFFSET_BITS 64
+#ifndef _LARGEFILE_SOURCE
+# define _LARGEFILE_SOURCE
+#endif
+#ifndef _LARGEFILE64_SOURCE
+# define _LARGEFILE64_SOURCE
+#endif
+#ifndef _FILE_OFFSET_BITS
+# define _FILE_OFFSET_BITS 64
+#endif
/****************** local defines *********************/
+#if !defined(PW_SHADOW)
+# define PW_SHADOW
+#endif
#ifndef _PATH_TCSHELL
#define _PATH_TCSHELL "/bin/tcsh"
#endif
#define ECHO_STYLE BOTH_ECHO
+#ifdef POSIXSIGS
+# define BSDSIGS
+#endif
+#if defined(BSDSIGS) && !defined(__USE_BSD)
+# define __USE_BSD
+#endif
+
#define NLS_CATALOGS
+#if !defined(SYSMALLOC)
+# define SYSMALLOC
+#endif
+#if !defined(NISPLUS)
+# define NISPLUS
+#endif
+#if !defined(POSIX)
+# define POSIX
+#endif
+
+#define SuSE
+#define MCLoadBySet NL_CAT_LOCALE
+
#endif /* _h_config */
--- nls/C/set1
+++ nls/C/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.5 1998/06/27 12:27:55 christos Exp $
$ Error messages
+$ codeset=ANSI_X3.4-1968
$set 1
1 Syntax Error
2 %s is not allowed
--- nls/et/set1
+++ nls/et/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.2 2001/01/11 13:25:24 christos Exp $
$ Error messages
+$ codeset=ISO-8859-1
$set 1
1 S<>ntaksi viga
2 %s ei ole lubatud
--- nls/finnish/set1
+++ nls/finnish/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.2 2001/09/03 02:13:26 kim Exp $
$ Error messages
+$ codeset=ISO-8859-1
$set 1
1 Kielioppivirhe
2 %s ei ole sallittu
--- nls/french/set1
+++ nls/french/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.3 1998/06/27 12:27:57 christos Exp $
$ Messages d 'erreur
+$ codeset=ISO-8859-1
$set 1
1 Erreur de syntaxe
2 %s n'est pas autoris<69>
--- nls/german/set1
+++ nls/german/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.5 1998/06/27 12:27:59 christos Exp $
$ Error messages
+$ codeset=ISO-8859-1
$set 1
1 Syntaxfehler
2 %s nicht erlaubt
--- nls/greek/set1
+++ nls/greek/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.3 1998/09/18 15:31:57 christos Exp $
$ Error messages
+$ codeset=ISO-8859-7
$set 1
1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2 T<> %s <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--- nls/italian/set1
+++ nls/italian/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.1 1998/09/03 22:03:13 christos Exp $
$ Error messages
+$ codeset=ISO-8859-1
$set 1
1 Errore di Sintassi
2 %s non <20> permesso
--- nls/ja/set1
+++ nls/ja/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.4 2004/12/25 22:24:58 christos Exp $
$ Error messages
+$ codeset=EUC-JP
$set 1
1 ʸˡ<CAB8><CBA1><EFBFBD>ְ<EFBFBD><D6B0>äƤ<C3A4><C6A4>ޤ<EFBFBD>
2 %s <20>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
--- nls/pl/set1
+++ nls/pl/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.5 1998/06/27 12:27:55 christos Exp $
$ Error messages
+$ codeset=ISO-8859-2
$set 1
1 B<><42>d sk<73>adni
2 %s jest niedozwolone
--- nls/russian/set1
+++ nls/russian/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.3 2002/03/08 17:46:50 christos Exp $
$ Error messages
+$ codeset=KOI8-R
$set 1
1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2 %s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--- nls/spanish/set1
+++ nls/spanish/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.2 1998/06/27 12:28:02 christos Exp $
$ Mensajes de Error
+$ codeset=ISO-8859-1
$set 1
1 Error de sintaxis
2 %s no est<73> permitido
--- nls/ukrainian/set1
+++ nls/ukrainian/set1 2006-04-25 14:58:31.000000000 +0200
@@ -1,5 +1,6 @@
$ $Id: set1,v 1.2 2002/07/01 20:50:22 christos Exp $
$ Error messages
+$ codeset=KOI8-U
$set 1
1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2 %s <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><D1A4><EFBFBD><EFBFBD>