diff --git a/nls-iconv b/nls-iconv deleted file mode 100644 index 03401f6..0000000 --- a/nls-iconv +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -iconv_files () { - FROM=$1 - shift - for i in $* - do - iconv --from $FROM --to UTF-8 < $i > $i.tmp - mv $i.tmp $i - perl -pi -e 's/codeset *= *[^[:space:]]*/codeset=UTF-8/' $i - done -} - -iconv_files ISO-8859-1 nls/C/set* -iconv_files ISO-8859-1 nls/et/set* -iconv_files ISO-8859-1 nls/finnish/set* -iconv_files ISO-8859-1 nls/french/set* -iconv_files ISO-8859-1 nls/german/set* -iconv_files ISO-8859-7 nls/greek/set* -iconv_files ISO-8859-1 nls/italian/set* -iconv_files EUC-JP nls/ja/set* -iconv_files ISO-8859-2 nls/pl/set* -iconv_files KOI8-R nls/russian/set* -iconv_files ISO-8859-1 nls/spanish/set* -iconv_files KOI8-U nls/ukrainian/set* - -for i in nls/*/charset ; do - perl -pi -e 's/codeset *= *[^[:space:]]*/codeset=UTF-8/' $i - perl -pi -e 's/1 *[^[:space:]]*/1 UTF-8/' $i -done diff --git a/tcsh-6.15.00-fullpath.dif b/tcsh-6.15.00-fullpath.dif deleted file mode 100644 index d71f032..0000000 --- a/tcsh-6.15.00-fullpath.dif +++ /dev/null @@ -1,22 +0,0 @@ ---- tw.parse.c -+++ tw.parse.c 2008-11-26 17:52:07.190195106 +0000 -@@ -347,9 +347,19 @@ tenematch(Char *inputline, int num_read, - goto end; - } - } -+ - Strbuf_append(&wordbuf, qline.s + wordp); - Strbuf_terminate(&wordbuf); - cleanup_push(&wordbuf, Strbuf_cleanup); -+ -+ if ((looking == TW_COMMAND) && (*wordbuf.s == '/')) { -+ if (executable((Char*)0, wordbuf.s, 0)) { -+ cleanup_until(&wordbuf); -+ search_ret = 0; -+ goto end; -+ } -+ } -+ - search_ret = spell_me(&wordbuf, looking, pat, suf); - qline.len = wordp; - Strbuf_append(&qline, wordbuf.s); diff --git a/tcsh-6.15.00-utf8.dif b/tcsh-6.15.00-utf8.dif deleted file mode 100644 index 8ac1f79..0000000 --- a/tcsh-6.15.00-utf8.dif +++ /dev/null @@ -1,13 +0,0 @@ ---- sh.func.c -+++ sh.func.c 2007-07-13 10:36:10.233075909 +0000 -@@ -2416,9 +2416,7 @@ nlsinit(void) - if (catalog != default_catalog) - xfree(catalog); - #if defined(HAVE_ICONV) && defined(HAVE_NL_LANGINFO) -- /* xcatgets (), not CGETS, the charset name should be in ASCII anyway. */ -- catgets_iconv = iconv_open (nl_langinfo (CODESET), -- xcatgets(catd, 255, 1, "ASCII")); -+ catgets_iconv = iconv_open (nl_langinfo (CODESET), "UTF-8"); - #endif /* HAVE_ICONV && HAVE_NL_LANGINFO */ - #endif /* NLS_CATALOGS */ - #ifdef WINNT_NATIVE diff --git a/tcsh-6.16.00-mailbox.dif b/tcsh-6.16.00-mailbox.dif deleted file mode 100644 index 14d9166..0000000 --- a/tcsh-6.16.00-mailbox.dif +++ /dev/null @@ -1,10 +0,0 @@ ---- sh.c -+++ sh.c 2009-08-14 08:27:58.129901841 +0000 -@@ -2153,6 +2153,7 @@ mailchk(void) - - while (readdir(mailbox)) - mailcount++; -+ closedir(mailbox); - - if (mailcount == 0) - continue; diff --git a/tcsh-6.17.00-longjmp.dif b/tcsh-6.17.00-longjmp.dif deleted file mode 100644 index f210408..0000000 --- a/tcsh-6.17.00-longjmp.dif +++ /dev/null @@ -1,77 +0,0 @@ ---- sh.h -+++ sh.h 2007-07-23 10:01:10.230408643 +0000 -@@ -640,7 +640,7 @@ EXTERN int SHDIAG IZERO; /* Diagnostic - EXTERN int OLDSTD IZERO; /* Old standard input (def for cmds) */ - - --#if SYSVREL == 4 && defined(_UTS) -+#if (SYSVREL == 4 && defined(_UTS)) || defined(__linux__) - /* - * From: fadden@uts.amdahl.com (Andy McFadden) - * we need sigsetjmp for UTS4, but not UTS2.1 -@@ -658,7 +658,7 @@ EXTERN int OLDSTD IZERO; /* Old standa - - #ifdef SIGSETJMP - typedef struct { sigjmp_buf j; } jmp_buf_t; --# define setexit() sigsetjmp(reslab.j) -+# define setexit() sigsetjmp(reslab.j, 1) - # define _reset() siglongjmp(reslab.j, 1) - #else - typedef struct { jmp_buf j; } jmp_buf_t; ---- sh.c -+++ sh.c 2007-07-23 10:02:41.640206073 +0000 -@@ -78,7 +78,7 @@ extern int NLSMapsAreInited; - * ported to Apple Unix (TM) (OREO) 26 -- 29 Jun 1987 - */ - --jmp_buf_t reslab INIT_ZERO_STRUCT; -+jmp_buf_t reslab; - - static const char tcshstr[] = "tcsh"; - -@@ -178,6 +178,8 @@ main(int argc, char **argv) - int osetintr; - struct sigaction oparintr; - -+ memset(&reslab, 0, sizeof(reslab)); -+ - #ifdef WINNT_NATIVE - nt_init(); - #endif /* WINNT_NATIVE */ -@@ -2013,7 +2015,10 @@ process(int catch) - #endif /* SIG_WINDOW */ - setcopy(STR_, InputBuf, VAR_READWRITE | VAR_NOGLOB); - cmd_done: -- cleanup_until(¶ml); -+ if (cleanup_reset()) -+ cleanup_until(¶ml); -+ else -+ haderr = 1; - } - cleanup_pop_mark(omark); - resexit(osetexit); ---- sh.decls.h -+++ sh.decls.h 2007-07-23 13:37:27.493023737 +0000 -@@ -90,6 +90,7 @@ extern void cleanup_push_internal(voi - #define cleanup_push(v, f) cleanup_push_internal(v, f) - #endif - ); -+extern int cleanup_reset (void); - extern void cleanup_ignore(void *); - extern void cleanup_until (void *); - extern void cleanup_until_mark(void); ---- sh.err.c -+++ sh.err.c 2007-07-23 13:39:48.944172212 +0000 -@@ -448,6 +448,12 @@ cleanup_until(void *last_var) - abort(); - } - -+int -+cleanup_reset(void) -+{ -+ return (cleanup_sp > cleanup_mark); -+} -+ - void - cleanup_until_mark(void) - { diff --git a/tcsh-6.17.02-catalogs.patch b/tcsh-6.17.02-catalogs.patch deleted file mode 100644 index c20bfcb..0000000 --- a/tcsh-6.17.02-catalogs.patch +++ /dev/null @@ -1,27 +0,0 @@ -Author: christos -Date: Thu May 13 18:39:02 2010 +0000 - - add a rule to make catalogs and propagate ${MAKE} instead of hard-coding make. - ---- a/Makefile.in -+++ b/Makefile.in -@@ -687,7 +687,7 @@ shar: - rm -rf tcsh-${VERSION} - - catalogs: -- @(cd nls; make catalogs) -+ @(cd nls; ${MAKE}) - - tcsh-${VERSION}.tar.Z: - rm -rf tcsh-${VERSION} ---- a/nls/Makefile.in -+++ b/nls/Makefile.in -@@ -18,7 +18,7 @@ install: $(INSTALLED) - $(INSTALL) $< $@ - - %.cat: -- $(GENCAT) $@ $(@:%.cat=%)/*set* -+ cat $(@:%.cat=%)/charset $(@:%.cat=%)/set* | $(GENCAT) $@ - - clean: - $(RM) $(CATALOGS) diff --git a/tcsh-6.17.02-colorls.dif b/tcsh-6.17.02-colorls.dif deleted file mode 100644 index 6e66102..0000000 --- a/tcsh-6.17.02-colorls.dif +++ /dev/null @@ -1,27 +0,0 @@ ---- tw.color.c -+++ tw.color.c 2010-12-10 16:07:59.151926218 +0000 -@@ -88,6 +88,7 @@ static Variable variables[] = { - VAR(NOS, "rs", "0"), /* Reset to normal color */ - VAR(NOS, "hl", "44;37"), /* Reg file extra hard links */ - VAR(NOS, "ca", "30;41"), /* File with capability */ -+ VAR(NOS, "cl", ""), /* CLRTOEOL */ - }; - - enum FileType { -@@ -239,13 +240,10 @@ parseLS_COLORS(const Char *value) - if ((Char)variables[i].variable[0] == (v[0] & CHAR) && - (Char)variables[i].variable[1] == (v[1] & CHAR)) - break; -- if (i < nvariables) { -- v += 3; -+ v += 3; -+ if (i < nvariables) - getstring(&c, &v, &variables[i].color, ':'); -- continue; -- } -- else -- stderror(ERR_BADCOLORVAR, v[0], v[1]); -+ continue; - } - break; - } diff --git a/tcsh-6.17.02-history.dif b/tcsh-6.17.02-history.dif deleted file mode 100644 index 596db48..0000000 --- a/tcsh-6.17.02-history.dif +++ /dev/null @@ -1,153 +0,0 @@ ---- sh.c -+++ sh.c 2007-10-15 10:03:11.000000000 +0000 -@@ -1811,7 +1811,7 @@ static Char *jobargv[2] = {STRjobs, 0} - * and finally go through the normal error mechanism, which - * gets a chance to make the shell go away. - */ --int just_signaled; /* bugfix by Michael Bloom (mg@ttidca.TTI.COM) */ -+int just_signaled = 0; /* bugfix by Michael Bloom (mg@ttidca.TTI.COM) */ - - void - pintr(void) ---- sh.err.c -+++ sh.err.c 2009-03-25 10:35:17.000000000 +0000 -@@ -51,6 +51,7 @@ char *seterr = NULL; /* Holds last err - #define ERR_NAME 0x10000000 - #define ERR_SILENT 0x20000000 - #define ERR_OLD 0x40000000 -+#define ERR_INTERRUPT 0x80000000 - - #define ERR_SYNTAX 0 - #define ERR_NOTALLOWED 1 -@@ -608,7 +609,8 @@ stderror(unsigned int id, ...) - * will go to 1/2 else to FSHOUT/FSHDIAG. See flush in sh.print.c. - */ - flush();/*FIXRESET*/ -- haderr = 1; /* Now to diagnostic output */ -+ if (!(flags & ERR_INTERRUPT)) -+ haderr = 1; /* Now to diagnostic output */ - if (flags & ERR_NAME) - xprintf("%s: ", bname);/*FIXRESET*/ - if ((flags & ERR_OLD)) { -@@ -649,5 +651,6 @@ stderror(unsigned int id, ...) - if (tpgrp > 0) - (void) tcsetpgrp(FSHTTY, tpgrp); - #endif -- reset(); /* Unwind */ -+ if (!(flags & ERR_INTERRUPT)) -+ reset(); /* Unwind */ - } ---- sh.h -+++ sh.h 2007-10-11 22:00:00.000000000 +0000 -@@ -565,6 +565,7 @@ EXTERN int neednote IZERO; /* Need to - EXTERN int noexec IZERO; /* Don't execute, just syntax check */ - EXTERN int pjobs IZERO; /* want to print jobs if interrupted */ - EXTERN int setintr IZERO; /* Set interrupts on/off -> Wait intr... */ -+EXTERN int handle_intr IZERO;/* Set interrupts on/off -> Wait intr... */ - EXTERN int havhash IZERO; /* path hashing is available */ - EXTERN int editing IZERO; /* doing filename expansion and line editing */ - EXTERN int noediting IZERO; /* initial $term defaulted to noedit */ ---- sh.hist.c -+++ sh.hist.c 2007-10-11 22:00:00.000000000 +0000 -@@ -1279,9 +1279,9 @@ rechist(Char *fname, int ref) - setv(STRverbose, verb, VAR_READWRITE); - } - fp = xcreat(short2str(fname), 0600); -+ cleanup_until(fname); - if (fp == -1) { - didfds = oldidfds; -- cleanup_until(fname); - return; - } - ftmp = SHOUT; -@@ -1291,7 +1291,6 @@ rechist(Char *fname, int ref) - xclose(fp); - SHOUT = ftmp; - didfds = oldidfds; -- cleanup_until(fname); - } - - ---- sh.print.c -+++ sh.print.c 2007-10-15 10:09:16.000000000 +0000 -@@ -222,7 +222,8 @@ drainoline(void) - void - flush(void) - { -- int unit; -+ int unit, oldexitset = exitset; -+ unsigned int errid = ERR_SILENT; - static int interrupted = 0; - - /* int lmode; */ -@@ -231,10 +232,14 @@ flush(void) - return; - if (GettingInput && !Tty_raw_mode && linp < &linbuf[sizeof linbuf - 10]) - return; -+ if (handle_intr) { -+ errid |= ERR_INTERRUPT; -+ exitset = 1; -+ } - if (interrupted) { - interrupted = 0; - linp = linbuf; /* avoid recursion as stderror calls flush */ -- stderror(ERR_SILENT); -+ stderror(errid); - } - interrupted = 1; - if (haderr) -@@ -286,13 +291,14 @@ flush(void) - case EDQUOT: - #endif - /* Nothing to do, but die */ -- xexit(1); -- break; -+ if (handle_intr == 0) -+ xexit(1); - default: -- stderror(ERR_SILENT); -+ stderror(errid); - break; - } - -+ exitset = oldexitset; - linp = linbuf; - interrupted = 0; - } ---- tc.sig.c -+++ tc.sig.c 2007-10-11 22:00:00.000000000 +0000 -@@ -60,25 +60,34 @@ int alrmcatch_disabled; /* = 0; */ - int phup_disabled; /* = 0; */ - int pchild_disabled; /* = 0; */ - int pintr_disabled; /* = 0; */ -+int handle_intr = 0; - - void - handle_pending_signals(void) - { - if (!phup_disabled && phup_pending) { - phup_pending = 0; -+ handle_intr++; - phup(); -+ handle_intr--; - } - if (!pintr_disabled && pintr_pending) { - pintr_pending = 0; -+ handle_intr++; - pintr(); -+ handle_intr--; - } - if (!pchild_disabled && pchild_pending) { - pchild_pending = 0; -+ handle_intr++; - pchild(); -+ handle_intr--; - } - if (!alrmcatch_disabled && alrmcatch_pending) { - alrmcatch_pending = 0; -+ handle_intr++; - alrmcatch(); -+ handle_intr--; - } - } - diff --git a/tcsh-6.17.02-kanji.dif b/tcsh-6.17.02-kanji.dif deleted file mode 100644 index 8b639d0..0000000 --- a/tcsh-6.17.02-kanji.dif +++ /dev/null @@ -1,132 +0,0 @@ ---- ed.inputl.c -+++ ed.inputl.c 2010-12-09 10:01:31.000000000 +0000 -@@ -683,7 +683,7 @@ GetNextCommand(KEYCMD *cmdnum, Char *ch) - #ifdef DSPMBYTE - _enable_mbdisp && - #else -- MB_LEN_MAX == 1 && -+ MB_CUR_MAX == 1 && - #endif - !adrof(STRnokanji) && (*ch & META)) { - MetaNext = 0; ---- sh.c -+++ sh.c 2010-12-10 16:10:45.000000000 +0000 -@@ -804,6 +804,18 @@ main(int argc, char **argv) - nt_autoset_dspmbyte(); - #endif /* WINNT_NATIVE */ - #endif -+#if defined(KANJI) -+#if defined(WIDE_STRINGS) && defined(HAVE_NL_LANGINFO) && defined(CODESET) -+#if defined(NLS) && defined(LC_CTYPE) -+ if (setlocale(LC_CTYPE, NULL) != NULL || getenv("LANG") != NULL) -+#else -+ if (getenv("LANG") != NULL) -+#endif -+ { -+ autoset_kanji(); -+ } -+#endif -+#endif - - fix_version(); /* publish the shell version */ - ---- sh.decls.h -+++ sh.decls.h 2010-12-07 10:09:50.000000000 +0000 -@@ -392,6 +392,11 @@ extern Char *unparse (struct command * - extern void update_dspmbyte_vars (void); - extern void autoset_dspmbyte (const Char *); - #endif -+#if defined(KANJI) -+#if defined(WIDE_STRINGS) && defined(HAVE_NL_LANGINFO) && defined(CODESET) -+extern void autoset_kanji (void); -+#endif -+#endif - - /* - * sh.time.c ---- sh.func.c -+++ sh.func.c 2010-12-09 09:15:06.000000000 +0000 -@@ -1422,6 +1422,10 @@ dosetenv(Char **v, struct command *c) - # endif - # ifdef LC_CTYPE - (void) setlocale(LC_CTYPE, ""); /* for iscntrl */ -+# if defined(KANJI) && defined(WIDE_STRINGS) && defined(HAVE_NL_LANGINFO) && defined(CODESET) -+ autoset_kanji(); -+# endif -+ - # endif /* LC_CTYPE */ - # ifdef NLS_CATALOGS - # ifdef LC_MESSAGES ---- sh.set.c -+++ sh.set.c 2010-12-09 11:07:56.000000000 +0000 -@@ -1098,7 +1098,8 @@ x: - } - } - --#if defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE) -+#if defined(KANJI) -+#if defined(SHORT_STRINGS) && defined(DSPMBYTE) - extern int dspmbyte_ls; - - void -@@ -1273,4 +1274,26 @@ autoset_dspmbyte(const Char *pcp) - } - } - } -+#elif defined(WIDE_STRINGS) && defined(HAVE_NL_LANGINFO) && defined(CODESET) -+void -+autoset_kanji(void) -+{ -+ char *codeset = nl_langinfo(CODESET); -+ -+ if (*codeset == '\0') { -+ if (adrof(STRnokanji) == NULL) -+ setNS(STRnokanji); -+ return; -+ } -+ -+ if (strcasestr(codeset, "SHIFT_JIS") == (char*)0) { -+ if (adrof(STRnokanji) == NULL) -+ setNS(STRnokanji); -+ return; -+ } -+ -+ if (adrof(STRnokanji) != NULL) -+ unsetv(STRnokanji); -+} -+#endif - #endif ---- tc.str.c -+++ tc.str.c 2010-12-14 16:47:24.383925459 +0000 -@@ -94,13 +94,31 @@ one_wctomb(char *s, Char wchar) - return len; - } - -+#if defined(KANJI) && defined(WIDE_STRINGS) && defined(HAVE_NL_LANGINFO) && defined(CODESET) -+static mbstate_t mb_zero; -+#endif -+ - int - rt_mbtowc(Char *pwc, const char *s, size_t n) - { - int ret; - char back[MB_LEN_MAX]; - wchar_t tmp; -+#if defined(KANJI) && defined(WIDE_STRINGS) && defined(HAVE_NL_LANGINFO) && defined(CODESET) -+ static mbstate_t mb; -+ -+ /* -+ * Workaround the Shift-JIS endcoding that translates unshifted 7 bit ASCII! -+ */ -+ if (!adrof(STRnokanji) && n && pwc && s && (*s == '\\' || *s == '~') && -+ !memcmp(&mb, &mb_zero, sizeof(mb))) -+ { -+ *pwc = *s; -+ return 1; -+ } -+#else - mbstate_t mb; -+#endif - - memset (&mb, 0, sizeof mb); - ret = mbrtowc(&tmp, s, n, &mb); diff --git a/tcsh-6.17.02-multibyte.patch b/tcsh-6.17.02-multibyte.patch deleted file mode 100644 index 8970c05..0000000 --- a/tcsh-6.17.02-multibyte.patch +++ /dev/null @@ -1,16 +0,0 @@ -Author: Jean-Luc Leger -Description: fix broken globbing expansion -Debian-Bug: #603545 ---- a/tc.str.c -+++ b/tc.str.c -@@ -104,8 +104,9 @@ rt_mbtowc(Char *pwc, const char *s, size_t n) - - memset (&mb, 0, sizeof mb); - ret = mbrtowc(&tmp, s, n, &mb); -- if (ret > 0) { -+ if (ret >= 0) - *pwc = tmp; -+ if (ret > 0) { - #ifdef UTF16_STRINGS - if (tmp >= 0xd800 && tmp <= 0xdbff) { - /* UTF-16 surrogate pair. Fetch second half and compute diff --git a/tcsh-6.17.02-spelling.dif b/tcsh-6.17.02-spelling.dif deleted file mode 100644 index aa88587..0000000 --- a/tcsh-6.17.02-spelling.dif +++ /dev/null @@ -1,24 +0,0 @@ ---- nls/Makefile.in -+++ nls/Makefile.in 2010-12-10 16:05:57.967928042 +0000 -@@ -2,7 +2,7 @@ - - LOCALES= C et finnish french german greek italian ja pl russian \ - spanish ukrainian --GENCAT= gencat -+GENCAT= gencat --new - INSTALL= ginstall - - datarootdir=@datarootdir@ ---- nls/german/set6 -+++ nls/german/set6 2005-08-17 12:12:36.000000000 +0000 -@@ -3,8 +3,8 @@ $ ed.inputl.c - $set 6 - 1 FEHLER: Illegaler Befehl von Taste 0%o\r\n - 2 ja\n --3 ediere\n --4 brich ab\n -+3 editieren\n -+4 abbrechen\n - 5 nein\n - 6 Kein entsprechender Befehl\n - 7 Mehrdeutiger Befehl\n diff --git a/tcsh-6.17.02.dif b/tcsh-6.17.02.dif deleted file mode 100644 index 0f18015..0000000 --- a/tcsh-6.17.02.dif +++ /dev/null @@ -1,830 +0,0 @@ ---- Makefile.in -+++ Makefile.in 2006-04-25 12:58:31.000000000 +0000 -@@ -591,12 +591,12 @@ vgrind: - @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/linux -+++ config/linux 2007-07-13 11:22:07.000000000 +0000 -@@ -70,7 +70,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 -@@ -86,21 +86,40 @@ - */ - - #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 -@@ -108,4 +127,17 @@ - - #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 */ ---- config_f.h -+++ config_f.h 2007-07-13 10:47:30.000000000 +0000 -@@ -37,7 +37,7 @@ - */ - #ifndef _h_config_f - #define _h_config_f -- -+#include - /* - * SHORT_STRINGS Use at least 16 bit characters instead of 8 bit chars - * This fixes up quoting problems and eases implementation -@@ -66,12 +66,19 @@ - */ - #if defined (NLS) && defined (HAVE_CATGETS) - # define NLS_CATALOGS -+#else -+# error No NLS Catalogs - #endif - - /* - * LOGINFIRST Source ~/.login before ~/.cshrc - */ --#undef LOGINFIRST -+#define LOGINFIRST -+ -+/* -+ * USERLOGINFIRST Source ~/.login before ~/.cshrc -+ */ -+#undef USERLOGINFIRST - - /* - * VIDEFAULT Make the VI mode editor the default -@@ -146,7 +153,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(__GLIBC__) - # define SYSMALLOC - #else - # undef SYSMALLOC -@@ -165,7 +172,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 ? -@@ -188,7 +195,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 ---- configure -+++ configure 2011-11-16 10:49:20.000000000 +0000 -@@ -3654,7 +3654,7 @@ return tgetent (); - return 0; - } - _ACEOF --for ac_lib in '' termlib termcap curses ncurses; do -+for ac_lib in '' termlib termcap tinfo curses ncurses; do - if test -z "$ac_lib"; then - ac_res="none required" - else ---- configure.in -+++ configure.in 2011-11-16 10:49:09.000000000 +0000 -@@ -281,7 +281,7 @@ fi - dnl Checks for libraries - AC_SEARCH_LIBS(crypt, crypt) - AC_SEARCH_LIBS(getspnam, sec) --AC_SEARCH_LIBS(tgetent, termlib termcap curses ncurses) -+AC_SEARCH_LIBS(tgetent, termlib termcap tinfo curses ncurses) - AC_SEARCH_LIBS(gethostbyname, nsl) - AC_SEARCH_LIBS(connect, socket) - AM_ICONV ---- glob.h -+++ glob.h 2006-04-25 12:58:31.000000000 +0000 -@@ -72,6 +72,7 @@ typedef struct { - #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. */ -@@ -84,7 +85,7 @@ typedef struct { - #define GLOB_DOT 0x8000 /* don't skip dotfiles (except . and ..) */ - - #define GLOB_ABEND GLOB_ABORTED /* source compatibility */ --/* #endif */ -+#endif - - int glob (const char *, int, int (*)(const char *, int), glob_t *); - void globfree (glob_t *); ---- host.defs -+++ host.defs 2007-07-13 12:05:58.000000000 +0000 -@@ -110,7 +110,7 @@ newcode : - /* - * On convex, find the current machine type via the getsysinfo() syscall - */ --#include -+# include - - /* From: fox@convex.com (David DeSimone) */ - static char * -@@ -168,6 +168,30 @@ getconvex(void) - endcode : - enddef : - -+newdef : defined(linux) || defined(__GNU__) || defined(__GLIBC__) -+comment : Linus Torvalds's linux -+newcode : -+# include -+char * getmach(void) -+{ -+ static char* mach = "unknown"; -+ struct utsname uts; -+ if (uname(&uts) == 0) -+ mach = uts.machine; -+ return mach; -+} -+char * gethost(void) -+{ -+ 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 -@@ -450,26 +474,29 @@ machtype: defined(M_i386) : "i386-pc- - 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_i586) : "i586-linux" --hosttype: defined(M_i486) : "i486-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 : : "linux" - machtype: defined(__ia64__) : "ia64" - machtype: defined(__powerpc64__) : "powerpc64" - machtype: defined(__s390x__) : "s390x" - machtype: defined(__s390__) : "s390" - machtype: defined(__x86_64__) : "x86_64" --machtype: defined(M_i586) : "i586" --machtype: defined(M_i486) : "i486" -+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" -@@ -480,6 +507,7 @@ machtype: defined(M_mipsel) : "mipsel - machtype: defined(M_mipseb) : "mipseb" - machtype: defined(M_mips64el) : "mips64el" - machtype: defined(M_mips64eb) : "mips64eb" -+machtype: : getmach() - enddef : - - ---- nls/C/set1 -+++ nls/C/set1 2006-04-25 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.6 2006/03/02 18:46:45 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.3 2006/03/02 18:46:45 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.3 2006/03/02 18:46:46 christos 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.4 2006/03/02 18:46:46 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.6 2006/03/02 18:46:46 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.4 2006/03/02 18:46:46 christos Exp $ - $ Error messages -+$ codeset=ISO-8859-7 - $set 1 - 1 ËÜèïò óýíôáîç - 2 Tï %s äåí åðéôñÝðåôáé ---- nls/italian/set1 -+++ nls/italian/set1 2006-04-25 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.2 2006/03/02 18:46:47 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.5 2006/03/02 18:46:47 christos Exp $ - $ Error messages -+$ codeset=EUC-JP - $set 1 - 1 ʸˡ¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ - 2 %s ¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤»¤ó ---- nls/pl/set1 -+++ nls/pl/set1 2006-04-25 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.4 2006/03/02 18:46:47 christos Exp $ - $ Error messages -+$ codeset=KOI8-R - $set 1 - 1 óÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ - 2 %s ÎÅÄÏÐÕÓÔÉÍÏ ---- nls/spanish/set1 -+++ nls/spanish/set1 2006-04-25 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.3 2006/03/02 18:46:48 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 12:58:31.000000000 +0000 -@@ -1,5 +1,6 @@ - $ $tcsh: set1,v 1.3 2006/03/02 18:46:48 christos Exp $ - $ Error messages -+$ codeset=KOI8-U - $set 1 - 1 óÉÎÔÁËÓÉÞÎÁ ÐÏÍÉÌËÁ - 2 %s ÎÅ ÄÏÚ×ÏÌѤÔØÓÑ ---- pathnames.h -+++ pathnames.h 2006-04-25 12:58:31.000000000 +0000 -@@ -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 2010-12-10 16:10:45.000000000 +0000 -@@ -501,7 +501,8 @@ main(int argc, char **argv) - 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, STRptssl, 3) != 0)) { - cp2 = cp2 + 1; - } - else -@@ -768,7 +769,16 @@ main(int argc, char **argv) - xfree(tmp2); - } - #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 */ - - /* -@@ -792,9 +802,9 @@ main(int argc, char **argv) - /* 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)); -@@ -1303,6 +1313,9 @@ main(int argc, char **argv) - setintr = osetintr; - parintr = oparintr; - } -+#ifndef USERLOGINFIRST -+# undef LOGINFIRST -+#endif - #ifdef LOGINFIRST - if (loginsh) - (void) srccat(varval(STRhome), STRsldotlogin); ---- sh.dol.c -+++ sh.dol.c 2007-07-13 11:51:58.000000000 +0000 -@@ -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("$tcsh: sh.dol.c,v 3.80 2010/05/12 15:02:47 christos Exp $") -@@ -938,6 +939,31 @@ heredoc(Char *term) - Char *lbp, *obp, *mbp; - Char **vp; - int quoted; -+//#undef __GLIBC__ -+#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)); -+ xclose(fd); -+ -+# ifndef O_TEMPORARY -+# define O_TEMPORARY 0 -+# endif -+ xclose(0); -+ if (xopen(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; -@@ -978,6 +1004,7 @@ again: - errno = oerrno; - stderror(ERR_SYSTEM, tmp, strerror(errno)); - } -+#endif /* !__GLIBC__ */ - (void) unlink(tmp); /* 0 0 inode! */ - Dv[0] = term; - Dv[1] = NULL; ---- sh.func.c -+++ sh.func.c 2010-12-09 09:15:06.000000000 +0000 -@@ -1401,14 +1401,6 @@ dosetenv(Char **v, struct command *c) - } - #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; -@@ -1434,6 +1426,13 @@ dosetenv(Char **v, struct command *c) - 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.h -+++ sh.h 2007-07-13 11:07:44.000000000 +0000 -@@ -284,7 +284,7 @@ typedef long tcsh_number_t; - # 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 -@@ -338,6 +338,12 @@ typedef long tcsh_number_t; - #if !((defined(SUNOS4) || defined(_MINIX) /* || defined(DECOSF1) */) && defined(TERMIO)) - # if !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 - -@@ -1203,9 +1209,7 @@ extern char **environ; - # ifdef NLS_CATALOGS - # if defined(linux) || defined(__GNU__) || defined(__GLIBC__) - # include --# ifdef notdef --# include /* Has this changed ? */ --# endif -+# include - # include - # endif - # ifdef SUNOS4 ---- sh.sem.c -+++ sh.sem.c 2006-04-25 12:58:31.000000000 +0000 -@@ -629,10 +629,19 @@ execute(struct command *t, volatile int - * 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 2010-12-09 11:07:56.000000000 +0000 -@@ -1115,11 +1115,11 @@ update_dspmbyte_vars(void) - 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; -@@ -1203,7 +1203,7 @@ update_dspmbyte_vars(void) - _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++) -@@ -1211,7 +1211,7 @@ update_dspmbyte_vars(void) - mbmapstr[lp] = 0; - setcopy(STRmbytemap, mbmapstr, VAR_READWRITE); - } --#endif /* MBYTEMAP */ -+# endif /* MBYTEMAP */ - } - - /* dspkanji/dspmbyte autosetting */ -@@ -1220,6 +1220,7 @@ void - autoset_dspmbyte(const Char *pcp) - { - int i; -+ struct varent *vp; - static const struct dspm_autoset_Table { - Char *n; - Char *v; -@@ -1242,13 +1243,18 @@ autoset_dspmbyte(const Char *pcp) - #if defined(HAVE_NL_LANGINFO) && defined(CODESET) - static const 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 12:58:31.000000000 +0000 -@@ -486,7 +486,7 @@ smalloc(size_t n) - { - ptr_t ptr; - -- n = n ? n : 1; -+ n = n ? n+1 : 1; - - #ifdef HAVE_SBRK - if (membot == NULL) -@@ -509,7 +509,7 @@ srealloc(ptr_t p, size_t n) - { - ptr_t ptr; - -- n = n ? n : 1; -+ n = n ? n+1 : 1; - - #ifdef HAVE_SBRK - if (membot == NULL) -@@ -533,7 +533,7 @@ scalloc(size_t s, size_t n) - ptr_t ptr; - - n *= s; -- n = n ? n : 1; -+ n = n ? n+1 : 1; - - #ifdef HAVE_SBRK - if (membot == NULL) -@@ -558,8 +558,10 @@ scalloc(size_t s, size_t n) - void - sfree(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 12:58:31.000000000 +0000 -@@ -129,10 +129,12 @@ Char STRmmliteral[] = { '-', 'G', '\0' } - 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' }; -@@ -436,7 +438,7 @@ Char STRkilldup[] = { 'k', 'i', 'l', 'l - 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.func.c -+++ tc.func.c 2007-07-13 11:15:03.000000000 +0000 -@@ -689,9 +689,13 @@ auto_lock(void) - handle_pending_signals(); - errno = 0; - } -- if (spw != NULL) /* shadowed passwd */ -+ if (spw != NULL) /* shadowed passwd */ - srpp = spw->sp_pwdp; -+ else -+ srpp = pw->pw_passwd; /* nis extended passwd? */ - } -+ endspent(); -+ endpwent(); - - #else - -@@ -1902,7 +1906,7 @@ getremotehost(int dest_fd) - * 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 12:58:31.000000000 +0000 -@@ -335,7 +335,7 @@ s_strlen(const Char *str) - { - 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 12:58:31.000000000 +0000 -@@ -260,6 +260,9 @@ watch_login(int force) - } - stlast = sta.st_mtime; - #ifdef HAVE_GETUTENT -+# ifndef HAVE_UTMPX_H -+ utmpname( _PATH_UTMP ); -+# endif - setutent(); - #else - if ((utmpfd = xopen(TCSH_PATH_UTMP, O_RDONLY|O_LARGEFILE)) < 0) { ---- tcsh.man -+++ tcsh.man 2006-04-25 12:58:31.000000000 +0000 -@@ -578,7 +578,7 @@ Repeating \fIdabbrev-expand\fR without a - 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 2007-07-13 11:18:16.000000000 +0000 -@@ -177,7 +177,7 @@ parseLS_COLORS(const Char *value) - 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; - size_t omark; - -@@ -302,12 +302,13 @@ print_color(const Char *fname, size_t le - break; - } - if (i == nvariables) { -- for (i = 0; i < nextensions; i++) -- if (len >= extensions[i].extension.len -- && 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 (len >= extensions[j].extension.len -+ && 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 12:58:31.000000000 +0000 -@@ -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 - diff --git a/tcsh-6.17.02.tar.bz2 b/tcsh-6.17.02.tar.bz2 deleted file mode 100644 index be222f2..0000000 --- a/tcsh-6.17.02.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da47874562a72563ac071cabf3e1380b238987c174791c84a1a7357cc611d780 -size 757076 diff --git a/tcsh-6.17.03-colorls.dif b/tcsh-6.17.03-colorls.dif new file mode 100644 index 0000000..1115400 --- /dev/null +++ b/tcsh-6.17.03-colorls.dif @@ -0,0 +1,56 @@ +--- tw.color.c ++++ tw.color.c 2010-12-10 16:07:59.000000000 +0000 +@@ -89,6 +89,7 @@ static Variable variables[] = { + VAR(NOS, "hl", "44;37"), /* Reg file extra hard links, obsolete? */ + VAR(NOS, "mh", "44;37"), /* Reg file extra hard links */ + VAR(NOS, "ca", "30;41"), /* File with capability */ ++ VAR(NOS, "cl", ""), /* CLRTOEOL */ + }; + + enum FileType { +@@ -177,7 +178,7 @@ parseLS_COLORS(const Char *value) + 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; + size_t omark; + +@@ -240,13 +241,10 @@ parseLS_COLORS(const Char *value) + if ((Char)variables[i].variable[0] == (v[0] & CHAR) && + (Char)variables[i].variable[1] == (v[1] & CHAR)) + break; +- if (i < nvariables) { +- v += 3; ++ v += 3; ++ if (i < nvariables) + getstring(&c, &v, &variables[i].color, ':'); +- continue; +- } +- else +- stderror(ERR_BADCOLORVAR, v[0], v[1]); ++ continue; + } + break; + } +@@ -301,12 +303,13 @@ print_color(const Char *fname, size_t le + break; + } + if (i == nvariables) { +- for (i = 0; i < nextensions; i++) +- if (len >= extensions[i].extension.len +- && 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 (len >= extensions[j].extension.len ++ && strncmp(last - extensions[j].extension.len, ++ extensions[j].extension.s, ++ extensions[j].extension.len) == 0) { ++ color = &extensions[j].color; + break; + } + } diff --git a/tcsh-6.17.06-catalogs.dif b/tcsh-6.17.06-catalogs.dif new file mode 100644 index 0000000..a36b733 --- /dev/null +++ b/tcsh-6.17.06-catalogs.dif @@ -0,0 +1,156 @@ +--- sh.c ++++ sh.c 2011-11-17 08:28:47.027646998 +0000 +@@ -168,8 +168,8 @@ static void st_restore (void *); + static void + add_localedir_to_nlspath(const char *path) + { +- static const char msgs_LOC[] = "/%L/LC_MESSAGES/%N.cat"; +- static const char msgs_lang[] = "/%l/LC_MESSAGES/%N.cat"; ++ static const char msgs_LOC[] = "/%L/LC_MESSAGES/%N"; ++ static const char msgs_lang[] = "/%l/LC_MESSAGES/%N"; + char *old; + char *new, *new_p; + size_t len; +@@ -181,7 +181,7 @@ add_localedir_to_nlspath(const char *pat + if (path == NULL) + return; + +- (void) xsnprintf(trypath, sizeof(trypath), "%s/en/LC_MESSAGES/tcsh.cat", ++ (void) xsnprintf(trypath, sizeof(trypath), "%s/en/LC_MESSAGES/tcsh", + path); + if (stat(trypath, &st) == -1) + return; +--- nls/Makefile.in ++++ nls/Makefile.in 2011-11-17 08:27:22.856205243 +0000 +@@ -15,8 +15,8 @@ localedir=${DESTDIR}@localedir@ + all: + + CATALOGS+=C.cat +-INSTALLED+=${localedir}/C/LC_MESSAGES/tcsh.cat +-${localedir}/C/LC_MESSAGES/tcsh.cat: C.cat ++INSTALLED+=${localedir}/C/LC_MESSAGES/tcsh ++${localedir}/C/LC_MESSAGES/tcsh: C.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -24,8 +24,8 @@ C.cat: ${srcdir}/C/charset ${srcdir}/C/* + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=et.cat +-INSTALLED+=${localedir}/et/LC_MESSAGES/tcsh.cat +-${localedir}/et/LC_MESSAGES/tcsh.cat: et.cat ++INSTALLED+=${localedir}/et/LC_MESSAGES/tcsh ++${localedir}/et/LC_MESSAGES/tcsh: et.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -33,8 +33,8 @@ et.cat: ${srcdir}/et/charset ${srcdir}/e + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=finnish.cat +-INSTALLED+=${localedir}/fi/LC_MESSAGES/tcsh.cat +-${localedir}/fi/LC_MESSAGES/tcsh.cat: finnish.cat ++INSTALLED+=${localedir}/fi/LC_MESSAGES/tcsh ++${localedir}/fi/LC_MESSAGES/tcsh: finnish.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -42,8 +42,8 @@ finnish.cat: ${srcdir}/finnish/charset $ + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=french.cat +-INSTALLED+=${localedir}/fr/LC_MESSAGES/tcsh.cat +-${localedir}/fr/LC_MESSAGES/tcsh.cat: french.cat ++INSTALLED+=${localedir}/fr/LC_MESSAGES/tcsh ++${localedir}/fr/LC_MESSAGES/tcsh: french.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -51,8 +51,8 @@ french.cat: ${srcdir}/french/charset ${s + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=german.cat +-INSTALLED+=${localedir}/de/LC_MESSAGES/tcsh.cat +-${localedir}/de/LC_MESSAGES/tcsh.cat: german.cat ++INSTALLED+=${localedir}/de/LC_MESSAGES/tcsh ++${localedir}/de/LC_MESSAGES/tcsh: german.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -60,8 +60,8 @@ german.cat: ${srcdir}/german/charset ${s + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=greek.cat +-INSTALLED+=${localedir}/gr/LC_MESSAGES/tcsh.cat +-${localedir}/gr/LC_MESSAGES/tcsh.cat: greek.cat ++INSTALLED+=${localedir}/el/LC_MESSAGES/tcsh ++${localedir}/el/LC_MESSAGES/tcsh: greek.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -69,8 +69,8 @@ greek.cat: ${srcdir}/greek/charset ${src + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=italian.cat +-INSTALLED+=${localedir}/it/LC_MESSAGES/tcsh.cat +-${localedir}/it/LC_MESSAGES/tcsh.cat: italian.cat ++INSTALLED+=${localedir}/it/LC_MESSAGES/tcsh ++${localedir}/it/LC_MESSAGES/tcsh: italian.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -78,8 +78,8 @@ italian.cat: ${srcdir}/italian/charset $ + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=ja.cat +-INSTALLED+=${localedir}/ja/LC_MESSAGES/tcsh.cat +-${localedir}/ja/LC_MESSAGES/tcsh.cat: ja.cat ++INSTALLED+=${localedir}/ja/LC_MESSAGES/tcsh ++${localedir}/ja/LC_MESSAGES/tcsh: ja.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -87,8 +87,8 @@ ja.cat: ${srcdir}/ja/charset ${srcdir}/j + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=pl.cat +-INSTALLED+=${localedir}/pl/LC_MESSAGES/tcsh.cat +-${localedir}/pl/LC_MESSAGES/tcsh.cat: pl.cat ++INSTALLED+=${localedir}/pl/LC_MESSAGES/tcsh ++${localedir}/pl/LC_MESSAGES/tcsh: pl.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -96,8 +96,8 @@ pl.cat: ${srcdir}/pl/charset ${srcdir}/p + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=russian.cat +-INSTALLED+=${localedir}/ru/LC_MESSAGES/tcsh.cat +-${localedir}/ru/LC_MESSAGES/tcsh.cat: russian.cat ++INSTALLED+=${localedir}/ru_RU/LC_MESSAGES/tcsh ++${localedir}/ru_RU/LC_MESSAGES/tcsh: russian.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -105,8 +105,8 @@ russian.cat: ${srcdir}/russian/charset $ + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=spanish.cat +-INSTALLED+=${localedir}/es/LC_MESSAGES/tcsh.cat +-${localedir}/es/LC_MESSAGES/tcsh.cat: spanish.cat ++INSTALLED+=${localedir}/es/LC_MESSAGES/tcsh ++${localedir}/es/LC_MESSAGES/tcsh: spanish.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + +@@ -114,8 +114,8 @@ spanish.cat: ${srcdir}/spanish/charset $ + cat $^ $> | $(GENCAT) $@ + + CATALOGS+=ukrainian.cat +-INSTALLED+=${localedir}/ru_UA.koi8u/LC_MESSAGES/tcsh.cat +-${localedir}/ru_UA.koi8u/LC_MESSAGES/tcsh.cat: ukrainian.cat ++INSTALLED+=${localedir}/uk_UA/LC_MESSAGES/tcsh ++${localedir}/uk_UA/LC_MESSAGES/tcsh: ukrainian.cat + mkdir -p $(@D) + $(INSTALL) $< $@ + diff --git a/tcsh-6.17.06-dspmbyte.dif b/tcsh-6.17.06-dspmbyte.dif new file mode 100644 index 0000000..b24a322 --- /dev/null +++ b/tcsh-6.17.06-dspmbyte.dif @@ -0,0 +1,130 @@ +--- sh.c ++++ sh.c 2010-12-10 16:10:45.000000000 +0000 +@@ -847,9 +847,9 @@ main(int argc, char **argv) + /* 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)); +--- sh.func.c ++++ sh.func.c 2010-12-09 09:15:06.000000000 +0000 +@@ -1406,14 +1406,6 @@ dosetenv(Char **v, struct command *c) + } + #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; +@@ -1438,6 +1430,13 @@ dosetenv(Char **v, struct command *c) + 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.set.c ++++ sh.set.c 2010-12-09 11:07:56.000000000 +0000 +@@ -1119,11 +1119,11 @@ update_dspmbyte_vars(void) + 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; +@@ -1207,7 +1207,7 @@ update_dspmbyte_vars(void) + _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++) +@@ -1215,7 +1215,7 @@ update_dspmbyte_vars(void) + mbmapstr[lp] = 0; + setcopy(STRmbytemap, mbmapstr, VAR_READWRITE); + } +-#endif /* MBYTEMAP */ ++# endif /* MBYTEMAP */ + } + + /* dspkanji/dspmbyte autosetting */ +@@ -1224,6 +1224,7 @@ void + autoset_dspmbyte(const Char *pcp) + { + int i; ++ struct varent *vp; + static const struct dspm_autoset_Table { + Char *n; + Char *v; +@@ -1246,13 +1247,18 @@ autoset_dspmbyte(const Char *pcp) + #if defined(HAVE_NL_LANGINFO) && defined(CODESET) + static const 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.const.c ++++ tc.const.c 2006-04-25 12:58:31.000000000 +0000 +@@ -130,10 +130,12 @@ Char STRmmliteral[] = { '-', 'G', '\0' } + 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' }; +@@ -437,7 +439,7 @@ Char STRkilldup[] = { 'k', 'i', 'l', 'l + 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' }; diff --git a/tcsh-6.17.06.dif b/tcsh-6.17.06.dif new file mode 100644 index 0000000..342625c --- /dev/null +++ b/tcsh-6.17.06.dif @@ -0,0 +1,245 @@ +--- Makefile.in ++++ Makefile.in 2011-11-16 12:12:02.000000000 +0000 +@@ -599,7 +599,6 @@ install: tcsh$(EXEEXT) install.catalogs + -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.catalogs: +--- config/linux ++++ config/linux 2011-11-16 12:15:09.000000000 +0000 +@@ -132,4 +132,11 @@ + # define POSIX + #endif + ++#if !defined(PW_SHADOW) ++# define PW_SHADOW ++#endif ++#if !defined(SuSE) ++# define SuSE ++#endif ++ + #endif /* _h_config */ +--- config_f.h ++++ config_f.h 2011-11-16 12:17:18.000000000 +0000 +@@ -37,7 +37,7 @@ + */ + #ifndef _h_config_f + #define _h_config_f +- ++#include + /* + * SHORT_STRINGS Use at least 16 bit characters instead of 8 bit chars + * This fixes up quoting problems and eases implementation +@@ -60,7 +60,12 @@ + /* + * LOGINFIRST Source ~/.login before ~/.cshrc + */ +-#undef LOGINFIRST ++#define LOGINFIRST ++ ++/* ++ * USERLOGINFIRST Source ~/.login before ~/.cshrc ++ */ ++#undef USERLOGINFIRST + + /* + * VIDEFAULT Make the VI mode editor the default +@@ -154,7 +159,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 ? +@@ -177,7 +182,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 +--- configure ++++ configure 2011-11-16 10:49:20.000000000 +0000 +@@ -3794,7 +3794,7 @@ return tgetent (); + return 0; + } + _ACEOF +-for ac_lib in '' termlib termcap curses ncurses; do ++for ac_lib in '' termlib termcap tinfo curses ncurses; do + if test -z "$ac_lib"; then + ac_res="none required" + else +--- configure.in ++++ configure.in 2011-11-16 10:49:09.000000000 +0000 +@@ -298,7 +298,7 @@ fi + dnl Checks for libraries + AC_SEARCH_LIBS(crypt, crypt) + AC_SEARCH_LIBS(getspnam, sec) +-AC_SEARCH_LIBS(tgetent, termlib termcap curses ncurses) ++AC_SEARCH_LIBS(tgetent, termlib termcap tinfo curses ncurses) + AC_SEARCH_LIBS(gethostbyname, nsl) + AC_SEARCH_LIBS(connect, socket) + AC_SEARCH_LIBS(catgets, catgets) +--- glob.h ++++ glob.h 2006-04-25 12:58:31.000000000 +0000 +@@ -72,6 +72,7 @@ typedef struct { + #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. */ +@@ -84,7 +85,7 @@ typedef struct { + #define GLOB_DOT 0x8000 /* don't skip dotfiles (except . and ..) */ + + #define GLOB_ABEND GLOB_ABORTED /* source compatibility */ +-/* #endif */ ++#endif + + int glob (const char *, int, int (*)(const char *, int), glob_t *); + void globfree (glob_t *); +--- pathnames.h ++++ pathnames.h 2006-04-25 12:58:31.000000000 +0000 +@@ -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 2010-12-10 16:10:45.000000000 +0000 +@@ -1353,6 +1353,9 @@ main(int argc, char **argv) + setintr = osetintr; + parintr = oparintr; + } ++#ifndef USERLOGINFIRST ++# undef LOGINFIRST ++#endif + #ifdef LOGINFIRST + if (loginsh) + (void) srccat(varval(STRhome), STRsldotlogin); +--- tc.alloc.c ++++ tc.alloc.c 2006-04-25 12:58:31.000000000 +0000 +@@ -489,7 +489,7 @@ smalloc(size_t n) + { + ptr_t ptr; + +- n = n ? n : 1; ++ n = n ? n+1 : 1; + + #ifdef HAVE_SBRK + if (membot == NULL) +@@ -512,7 +512,7 @@ srealloc(ptr_t p, size_t n) + { + ptr_t ptr; + +- n = n ? n : 1; ++ n = n ? n+1 : 1; + + #ifdef HAVE_SBRK + if (membot == NULL) +@@ -536,7 +536,7 @@ scalloc(size_t s, size_t n) + ptr_t ptr; + + n *= s; +- n = n ? n : 1; ++ n = n ? n+1 : 1; + + #ifdef HAVE_SBRK + if (membot == NULL) +@@ -561,8 +561,10 @@ scalloc(size_t s, size_t n) + void + sfree(ptr_t p) + { +- if (p && !dont_free) ++ if (p && !dont_free) { + free(p); ++ p = (ptr_t)NULL; ++ } + } + + #endif /* SYSMALLOC */ +--- tc.func.c ++++ tc.func.c 2007-07-13 11:15:03.000000000 +0000 +@@ -689,9 +689,13 @@ auto_lock(void) + handle_pending_signals(); + errno = 0; + } +- if (spw != NULL) /* shadowed passwd */ ++ if (spw != NULL) /* shadowed passwd */ + srpp = spw->sp_pwdp; ++ else ++ srpp = pw->pw_passwd; /* nis extended passwd? */ + } ++ endspent(); ++ endpwent(); + + #else + +@@ -1905,7 +1909,7 @@ getremotehost(int dest_fd) + * 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 12:58:31.000000000 +0000 +@@ -336,7 +336,7 @@ s_strlen(const Char *str) + { + 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 12:58:31.000000000 +0000 +@@ -260,6 +260,9 @@ watch_login(int force) + } + stlast = sta.st_mtime; + #ifdef HAVE_GETUTENT ++# ifndef HAVE_UTMPX_H ++ utmpname( _PATH_UTMP ); ++# endif + setutent(); + #else + if ((utmpfd = xopen(TCSH_PATH_UTMP, O_RDONLY|O_LARGEFILE)) < 0) { +--- tcsh.man ++++ tcsh.man 2006-04-25 12:58:31.000000000 +0000 +@@ -578,7 +578,7 @@ Repeating \fIdabbrev-expand\fR without a + 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.h ++++ tw.h 2006-04-25 12:58:31.000000000 +0000 +@@ -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 + diff --git a/tcsh-6.17.06.tar.bz2 b/tcsh-6.17.06.tar.bz2 new file mode 100644 index 0000000..77443aa --- /dev/null +++ b/tcsh-6.17.06.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3b07178731ebd262a8e38165795eb997b24c39008e15227fee34e999f17e406 +size 764795 diff --git a/tcsh.changes b/tcsh.changes index 0e8e81d..4c4c817 100644 --- a/tcsh.changes +++ b/tcsh.changes @@ -1,3 +1,69 @@ +------------------------------------------------------------------- +Fri Nov 18 13:26:08 UTC 2011 - werner@suse.de + +- Increase size of hash table for runtime linker a lot + +------------------------------------------------------------------- +Thu Nov 17 08:44:05 UTC 2011 - werner@suse.de + +- Split off tcsh-lang as its own package +- Make language catalogs work that is use tcsh instead of tcsh.cat + as this is the system default + +------------------------------------------------------------------- +Wed Nov 16 14:21:12 UTC 2011 - werner@suse.de + +- Update to tcsh minor version V6.17.06 + * PR/110: Add $anyerror to select behavior. Default to the new one. + * Don't try to spell commands that are correct (Rouben Rostamian) + [./tcsh -f; set path=($path 2); mkdir foo2; cd foo2; touch foo; + chmod +x foo; set correct=cmd; ./foo -> ../foo] + * Don't push the syntax struct on the cleanup stack, because on foo;bar + if foo fails, we will free bar prematurely (Ben Miller) + * Avoid infinite loop while trying to print the pid of a dying process + to a closed file (Bob Arendt) + * Handle completion of ${ variables (Anthony Mallet) + * Add --disable-nls-catalogs (Corinna Vinschen) + * convert message catalogs to UTF-8 (Werner Fink) + * check that the NLS path works before setting $NLSPATH. + * use SYSMALLOC for GLIBC (Werner Fink) + * use mallinfo for SYSMALLOC (Corinna Vinschen) + * Use mkstemp() if there for here docs (Werner Fink) + * Fix handling of errors and exit values in builtins (Werner Fink) + * Better pty name detection (Werner Fink) + * Enable NLS catalogs on Cygwin (Corinna Vinschen) + * NLSPATH handling fixes (Corinna Vinschen) + * Avoid infrequent exit when tcsh cd's into a non-existent directory + https://bugzilla.novell.com/show_bug.cgi?id=293395 (Werner Fink) + * Don't try to spell check full path binaries that are correct because + they can cause hangs when other nfs partitions are hung. (Werner Fink) + * Avoid nested interrupts when exiting causing history writing to fail + https://bugzilla.novell.com/show_bug.cgi?id=331627 (Werner Fink) + * Instead of giving an error or ignoring lines with missing eol at eof, + process them. + * Avoid leaking fd's in mail check (Werner Fink) + * Recognize i686 (Corinna Vinschen) + * Avoid double slashes in cdpath (Corinna Vinschen) + * PR/102: Complain on input files with missing trailing \n + * PR/104: If atime == mtime we don't have new mail. + * PR/113: Don't allow illegal variable names to be set. + * PR/112: don't set $REMOTEHOST on the local machine. + * Add AUTOSET_KANJI which works around the Shift-JIS encoding that + translates unshifted 7 bit ASCII (Werner Fink) + * Handle mb{r,}towc() returning 0 by setting the return value to NUL + (Jean-Luc Leger) + * PR/109: make wait interruptible (Vojtech Vitek) + * resource limit fixes: signed vs. unsigned, megabyte issue, doc issues + (Robert Byrnes) + * Don't echo history while history -L or history -M + * Check for EOS before ** from Greg Dionne + * Don't fork in backeval from Bryan Mason + * Better globstar support from Greg Dionne + * Error out when processing the last incomplete line instead of silently + ignoring it (Anders Kaseorg) + * Fix SEGV from echo `` + * Better fixes for histchars and promptchars (nargs) + ------------------------------------------------------------------- Wed Nov 16 11:12:23 UTC 2011 - werner@suse.de diff --git a/tcsh.spec b/tcsh.spec index 9089179..1fa9b8d 100644 --- a/tcsh.spec +++ b/tcsh.spec @@ -1,5 +1,5 @@ # -# spec file for package tcsh +# spec file for package tcsh (Version 6.17.06) # # Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -24,28 +24,23 @@ Url: http://www.tcsh.org/ License: BSD3c(or similar) Group: System/Shells Requires: gawk textutils +%if %suse_version > 1020 +Recommends: tcsh-lang = 6.17.06 +%endif AutoReqProv: on -Version: 6.17.02 -Release: 11 +Version: 6.17.06 +Release: 1 Summary: The C SHell -Source: ftp.astron.com:/pub/tcsh/tcsh-6.17.02.tar.bz2 -Source1: nls-iconv +Source: ftp.astron.com:/pub/tcsh/tcsh-6.17.06.tar.bz2 Source2: bindkey.tcsh Source3: complete.tcsh -Patch: tcsh-6.17.02.dif -Patch1: tcsh-6.17.02-spelling.dif -Patch2: tcsh-6.15.00-utf8.dif -Patch3: tcsh-6.15.00-pipe.dif -Patch4: tcsh-6.17.00-longjmp.dif -Patch5: tcsh-6.16.00-norm-cmd.dif -Patch6: tcsh-6.17.02-history.dif -Patch7: tcsh-6.15.00-blanks.dif -Patch8: tcsh-6.15.00-fullpath.dif -Patch9: tcsh-6.17.02-multibyte.patch -Patch10: tcsh-6.17.02-colorls.dif -Patch11: tcsh-6.16.00-mailbox.dif -Patch12: tcsh-6.17.02-catalogs.patch -Patch13: tcsh-6.17.02-kanji.dif +Patch: tcsh-6.17.06.dif +Patch1: tcsh-6.15.00-pipe.dif +Patch2: tcsh-6.16.00-norm-cmd.dif +Patch3: tcsh-6.15.00-blanks.dif +Patch4: tcsh-6.17.03-colorls.dif +Patch5: tcsh-6.17.06-dspmbyte.dif +Patch6: tcsh-6.17.06-catalogs.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -62,29 +57,61 @@ Authors: Christos Zoulas Scott Krotz +%package -n tcsh-lang +License: BSD3c(or similar) +Summary: Languages for package tcsh +Group: System/Localization +Provides: tcsh-lang = %{version} +Requires: tcsh = %{version} + +%description -n tcsh-lang +Provides translations to the package tcsh + %prep %setup -%patch1 -p0 -b .spell -%patch2 -p0 -b .utf8 -%patch3 -p0 -b .pipe -%patch4 -p0 -b .longjmp -%patch5 -p0 -b .normcmd -%patch6 -p0 -b .history +%patch1 -p0 -b .pipe +%patch2 -p0 -b .normcmd ### disabled for know, should work on os11.1 without -### %patch7 -p0 -b .blanks -%patch8 -p0 -b .fullpath -%patch9 -p1 -b .mb -%patch10 -p0 -b .colorls -%patch11 -p0 -b .mailbox -%patch12 -p1 -b .catalog -%patch13 -p0 -b .kanji -%patch -b .0 - sh $RPM_SOURCE_DIR/nls-iconv +### %patch3 -p0 -b .blanks +%patch4 -p0 -b .colorls +%patch5 -p0 -b .dspmbyte +%patch6 -p0 -b .catalogs +%patch -b .0 %build + cflags () + { + local flag=$1; shift + local var=$1; shift + test -n "${flag}" -a -n "${var}" || return + case "${!var}" in + *${flag}*) return + esac + set -o noclobber + case "$flag" in + -Wl,*) + if echo 'int main () { return 0; }' | \ + ${CC:-gcc} -Werror $flag -o /dev/null -xc - > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + ;; + *) + if ${CC:-gcc} -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + if ${CXX:-g++} -Werror $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + esac + set +o noclobber + } CC=gcc CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -DBUFSIZE=8192 -pipe" - export CC CFLAGS + cflags -ftree-loop-linear CFLAGS + cflags -Wl,-O2 LDFLAGS + cflags -Wl,--as-needed LDFLAGS + cflags -Wl,--hash-size=16699 LDFLAGS + export CC CFLAGS LDFLAGS %ifarch %ix86 CPU=i586 %else @@ -101,12 +128,10 @@ Authors: --libexecdir=/usr/%{_lib}/tcsh \ --disable-rpath \ --with-gnu-ld - make + make GENCAT='/usr/bin/gencat --new' # # requires a working terminal on stdin # make check - rm -vf nls/*/set[0-9]*.* - make catalogs %install rm -rf $RPM_BUILD_ROOT @@ -115,32 +140,34 @@ Authors: nls=${nls##*/} nls=${nls%%.*} case "${nls}" in - fi*) nls=fi ;; - fr*) nls=fr ;; - ge*) nls=de ;; - gr*) nls=el ;; - it*) nls=it ;; - ru*) nls=ru ;; - sp*) nls=es ;; - uk*) nls=uk_UA ;; - C) continue ;; + fi*) nls=fi ;; + fr*) nls=fr ;; + ge*) nls=de ;; + gr*) nls=el ;; + it*) nls=it ;; + ru*) nls=ru_RU ;; + sp*) nls=es ;; + uk*) nls=uk_UA ;; + C) continue ;; esac dir=$RPM_BUILD_ROOT/usr/share/locale/${nls}/LC_MESSAGES + test ! -e ${dir}/tcsh || continue mkdir -p -m 0755 $dir install -m 0444 ${msg} ${dir}/tcsh done - make DESTDIR=$RPM_BUILD_ROOT install - make DESTDIR=$RPM_BUILD_ROOT install.man + make DESTDIR=$RPM_BUILD_ROOT GENCAT='/usr/bin/gencat --new' install + make DESTDIR=$RPM_BUILD_ROOT GENCAT='/usr/bin/gencat --new' install.man mkdir -p $RPM_BUILD_ROOT%{_docdir}/tcsh install -m 0444 FAQ $RPM_BUILD_ROOT%{_docdir}/tcsh/FAQ.tcsh mkdir -p $RPM_BUILD_ROOT/etc/profile.d/ mkdir -p $RPM_BUILD_ROOT/usr/bin install -m 644 $RPM_SOURCE_DIR/bindkey.tcsh $RPM_BUILD_ROOT/etc/profile.d/ install -m 644 $RPM_SOURCE_DIR/complete.tcsh $RPM_BUILD_ROOT/etc/profile.d/ - rm -f $RPM_BUILD_ROOT/bin/csh - rm -f $RPM_BUILD_ROOT/usr/bin/csh - rm -f $RPM_BUILD_ROOT/usr/bin/tcsh - rm -f $RPM_BUILD_ROOT%{_mandir}/man1/csh.* + rm -f $RPM_BUILD_ROOT/bin/csh + rm -f $RPM_BUILD_ROOT/usr/bin/csh + rm -f $RPM_BUILD_ROOT/usr/bin/tcsh + rm -f $RPM_BUILD_ROOT%{_mandir}/man1/csh.* + rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/C ln -sf tcsh $RPM_BUILD_ROOT/bin/csh ln -sf tcsh.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/csh.1.gz ln -sf ../../bin/tcsh $RPM_BUILD_ROOT/usr/bin/csh @@ -161,6 +188,9 @@ Authors: %doc %{_docdir}/tcsh/FAQ.tcsh %doc %{_mandir}/man1/csh.1.gz %doc %{_mandir}/man1/tcsh.1.gz -%{_datadir}/locale/*/LC_MESSAGES/tcsh + +%files -n tcsh-lang +%defattr(-,root,root) +%{_datadir}/locale/*/LC_MESSAGES/tcsh* %changelog