--- .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 , 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 +# include /* 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 +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 #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 #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 # 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 +# 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 -# ifdef notdef -# include /* Has this changed ? */ -# endif +# include # include # 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 + +# +# 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 +# +# 1999/06/28: 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 '/ \ + 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:''/ 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:'/ \ + 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:'/ + + 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 + # 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:''/ \ + n/*/"(if of conv ibs obs bs cbs files skip file seek count)"/= + + complete nslookup p/1/x:''/ 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 + 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 + 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 + # = 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 + 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:''/ \ + n/-e/x:''/ \ + 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:''/ \ + 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:''/ \ + 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:''/ n/-l/f/ n/*/c/ + + complete ps c/-t/x:''/ c/-/"(a c C e g k l S t u v w x)"/ \ + n/-k/x:''/ N/-k/x:''/ n/*/x:''/ + complete compress c/-/"(c f v b)"/ n/-b/x:''/ 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:''/ 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:''/ \ + n/-d/x:''/ n/-f/x:''/ n/-i/f/ \ + n@-l@F:/usr/share/emacs/@ \ + n/-t/x:''/ \ + 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:''/ \ + 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:''/ \ + 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:''/ N/-*e/f/ \ + n/-*e/x:''/ 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:''/ N/-*e/f/ \ + n/-*e/x:''/ 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:''/ N/-*e/f/ \ + n/-*e/x:''/ 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:''/ N/-*e/f/ \ + n/-*e/x:''/ 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:''/ N/-*e/f/ \ + n/-*e/x:''/ 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:''/ N/-*e/f/ \ + n/-*e/x:''/ n/-*f/f/ n/*/f/ + + complete users c/--/"(help version)"/ p/1/x:''/ + complete who c/--/"(heading mesg idle count help message version \ + writable)"/ c/-/"(H T w i u m q s -)"/ \ + p/1/x:''/ 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:''/ \ + 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:''/ \ + 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:''/ \ + n/{-V,--version-control}/"(t numbered nil existing \ + never simple)"/ n/-/f/ N/-/x:''/ \ + p/1/f/ p/2/x:''/ + complete touch c/--/"(date reference time help version)"/ \ + c/-/"(a c d f m r t -)"/ \ + n/{-d,--date}/x:''/ \ + c/--time/"(access atime mtime modify use)"/ \ + n/{-r,--file}/f/ n/-t/x:''/ n/*/f/ + complete mkdir c/--/"(mode parents verbose help version)"/ \ + c/-/"(p m -)"/ \ + n/{-m,--mode}/x:''/ 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:''/ \ + n/-c*{jf,fj}/x:''/ \ + n/-c*f/x:''/ \ + 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:''/ \ + n/{-V,--label}/x:''/ \ + n/{-N,--{after-date,newer}}/x:''/ \ + n/{-L,--tape-length}/x:''/ \ + 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:''@ p@1@x:''@ \ + 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 */ -#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é --- 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 ËÜèïò óýíôáîç 2 Tï %s äåí åðéôñÝðåôáé --- 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 è 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 ʸˡ¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ 2 %s ¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤»¤ó --- 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³±d sk³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 óÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ 2 %s ÎÅÄÏÐÕÓÔÉÍÏ --- 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á 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 óÉÎÔÁËÓÉÞÎÁ ÐÏÍÉÌËÁ 2 %s ÎÅ ÄÏÚ×ÏÌѤÔØÓÑ