diff options
author | Daniel Black <dragonheart@gentoo.org> | 2005-03-02 08:54:49 +0000 |
---|---|---|
committer | Daniel Black <dragonheart@gentoo.org> | 2005-03-02 08:54:49 +0000 |
commit | d9ca29b057e00ca41262447502ee812b6d351311 (patch) | |
tree | ae39fa5ac50d7fb35a23315c1c06a2490aa5f2aa /app-shells/tcsh/files | |
parent | Use bash builtins for testing. Added MYTH_NICE option. (diff) | |
download | gentoo-2-d9ca29b057e00ca41262447502ee812b6d351311.tar.gz gentoo-2-d9ca29b057e00ca41262447502ee812b6d351311.tar.bz2 gentoo-2-d9ca29b057e00ca41262447502ee812b6d351311.zip |
russian characters problems as per bug #83732
(Portage version: 2.0.51.18)
Diffstat (limited to 'app-shells/tcsh/files')
-rw-r--r-- | app-shells/tcsh/files/digest-tcsh-6.13-r1 | 2 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.11.00-termcap.patch | 12 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.12.00-setpgrp.patch | 14 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-arch.patch | 24 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-charset.patch | 15 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-closem.patch | 20 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-codeset.patch | 81 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-cstr.patch | 11 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-dspmbyte.patch | 60 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-fcntl.patch | 20 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-glob.patch | 11 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-iconv.patch | 402 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-utmp.patch | 59 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.13.00-winchg.patch | 50 |
14 files changed, 781 insertions, 0 deletions
diff --git a/app-shells/tcsh/files/digest-tcsh-6.13-r1 b/app-shells/tcsh/files/digest-tcsh-6.13-r1 new file mode 100644 index 000000000000..18dfd0c5dbeb --- /dev/null +++ b/app-shells/tcsh/files/digest-tcsh-6.13-r1 @@ -0,0 +1,2 @@ +MD5 11c0c9c9148652dc01270c4880d1cc6e tcsh-6.13.00.tar.gz 844755 +MD5 d4108a1ef7482d9440e5032e8a8d77b3 tcsh-complete 45242 diff --git a/app-shells/tcsh/files/tcsh-6.11.00-termcap.patch b/app-shells/tcsh/files/tcsh-6.11.00-termcap.patch new file mode 100644 index 000000000000..b28144b8ee38 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.11.00-termcap.patch @@ -0,0 +1,12 @@ +Prefer libtermcap to libncurses for the shell. +--- tcsh-6.11.00/configure.in 2002-06-05 10:50:07.000000000 -0400 ++++ tcsh-6.11.00/configure.in 2002-06-05 10:50:03.000000000 -0400 +@@ -253,7 +253,7 @@ + esac + + AC_SEARCH_LIBS(crypt, crypt) +-AC_SEARCH_LIBS(tgetent, termlib curses termcap) ++AC_SEARCH_LIBS(tgetent, termlib termcap curses) + AC_SEARCH_LIBS(gethostbyname, nsl) + AC_SEARCH_LIBS(connect, socket) + diff --git a/app-shells/tcsh/files/tcsh-6.12.00-setpgrp.patch b/app-shells/tcsh/files/tcsh-6.12.00-setpgrp.patch new file mode 100644 index 000000000000..8efe3bf8142d --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.12.00-setpgrp.patch @@ -0,0 +1,14 @@ +Don't include our own declaration of setpgrp if the system defines prototypes +for SysV functions (like setpgrp()). Not sure if this is the Right fix or not. +--- tcsh-6.12.00/sh.h 2004-02-10 11:35:44.000000000 -0500 ++++ tcsh-6.12.00/sh.h 2004-02-10 11:35:40.000000000 -0500 +@@ -474,7 +474,9 @@ + extern pid_t getpgrp __P((void)); + # endif /* BSD || SUNOS4 || IRISD || DGUX */ + # endif /* POSIX */ ++#ifndef _SVID_SOURCE + extern pid_t setpgrp __P((pid_t, pid_t)); ++#endif + #endif /* !WINNT_NATIVE */ + + typedef sigret_t (*signalfun_t) __P((int)); diff --git a/app-shells/tcsh/files/tcsh-6.13.00-arch.patch b/app-shells/tcsh/files/tcsh-6.13.00-arch.patch new file mode 100644 index 000000000000..c1612e6ab07f --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-arch.patch @@ -0,0 +1,24 @@ +--- tcsh-6.13.00/host.defs.arch 2003-02-08 21:03:25.000000000 +0100 ++++ tcsh-6.13.00/host.defs 2004-09-15 18:32:39.770032216 +0200 +@@ -438,11 +438,21 @@ + newdef : defined(linux) + comment : Linus Torvalds's linux + 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_i386) : "i386-linux" + ostype : !defined(PPC) : "linux" + ostype : defined(PPC) : "mklinux" ++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_i386) : "i386" diff --git a/app-shells/tcsh/files/tcsh-6.13.00-charset.patch b/app-shells/tcsh/files/tcsh-6.13.00-charset.patch new file mode 100644 index 000000000000..c9dc39d86cc6 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-charset.patch @@ -0,0 +1,15 @@ +--- tcsh-6.13.00/nls/russian/charset.charset 2004-08-17 17:54:12.229979032 +0200 ++++ tcsh-6.13.00/nls/russian/charset 2004-08-17 17:54:30.695171896 +0200 +@@ -1 +1 @@ +-$ codeset=ISO-8859-5 ++$ codeset=KOI8-R +--- tcsh-6.13.00/nls/pl/charset.charset 2004-08-17 17:51:05.985292528 +0200 ++++ tcsh-6.13.00/nls/pl/charset 2004-08-17 17:51:12.798256800 +0200 +@@ -1 +1 @@ +-$ codeset=ISO-8859-5 ++$ codeset=ISO-8859-2 +--- tcsh-6.13.00/nls/ukrainian/charset.charset 2004-08-17 17:55:09.520269584 +0200 ++++ tcsh-6.13.00/nls/ukrainian/charset 2004-08-17 17:55:15.252398168 +0200 +@@ -1 +1 @@ +-$ codeset=ISO-8859-5 ++$ codeset=KOI8-U diff --git a/app-shells/tcsh/files/tcsh-6.13.00-closem.patch b/app-shells/tcsh/files/tcsh-6.13.00-closem.patch new file mode 100644 index 000000000000..158881bb1436 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-closem.patch @@ -0,0 +1,20 @@ +--- tcsh/sh.misc.c 2004-09-08 18:36:04.000000000 +0200 ++++ tcsh-6.13.00/sh.misc.c 2004-09-08 23:53:43.081020880 +0200 +@@ -257,6 +257,7 @@ + closem() + { + register int f; ++ struct stat st; + + #ifdef NLS_BUGS + #ifdef NLS_CATALOGS +@@ -273,6 +274,9 @@ + #ifdef MALLOC_TRACE + && f != 25 + #endif /* MALLOC_TRACE */ ++#ifdef S_ISSOCK ++ && fstat(f, &st) == 0 && !S_ISSOCK(st.st_mode) ++#endif + ) + { + (void) close(f); diff --git a/app-shells/tcsh/files/tcsh-6.13.00-codeset.patch b/app-shells/tcsh/files/tcsh-6.13.00-codeset.patch new file mode 100644 index 000000000000..846c8b112a3b --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-codeset.patch @@ -0,0 +1,81 @@ +diff -ur tcsh-6.13.00/config.h.in tcsh/config.h.in +--- tcsh-6.13.00/config.h.in 2004-09-14 20:01:21.622550088 +0200 ++++ tcsh/config.h.in 2004-09-14 19:40:59.835289984 +0200 +@@ -3,6 +3,9 @@ + /* Define to 1 if you have the iconv () interface */ + #undef HAVE_ICONV + ++/* Define to 1 if you have the `nl_langinfo' function. */ ++#undef HAVE_NL_LANGINFO ++ + /* Define to the address where bug reports for this package should be sent. */ + #undef PACKAGE_BUGREPORT + +diff -ur tcsh-6.13.00/configure tcsh/configure +diff -ur tcsh-6.13.00/configure.in tcsh/configure.in +--- tcsh-6.13.00/configure.in 2004-09-14 20:01:21.624549784 +0200 ++++ tcsh/configure.in 2004-09-14 19:34:44.314377840 +0200 +@@ -257,6 +257,7 @@ + ;; + esac + ++AC_CHECK_FUNCS([nl_langinfo]) + AC_SEARCH_LIBS(crypt, crypt) + AC_SEARCH_LIBS(tgetent, termlib termcap curses) + AC_SEARCH_LIBS(gethostbyname, nsl) +diff -ur tcsh-6.13.00/sh.set.c tcsh/sh.set.c +--- tcsh-6.13.00/sh.set.c 2004-09-14 20:01:21.647546288 +0200 ++++ tcsh/sh.set.c 2004-09-14 19:35:06.276039160 +0200 +@@ -37,6 +37,10 @@ + #include "ed.h" + #include "tw.h" + ++#ifdef HAVE_NL_LANGINFO ++#include <langinfo.h> ++#endif ++ + extern Char HistLit; + extern bool GotTermCaps; + int numeof = 0; +@@ -1254,7 +1258,29 @@ + { STRSTARKUTF8, STRKUTF8 }, + { NULL, NULL } + }; ++#ifdef HAVE_NL_LANGINFO ++ struct dspm_autoset_Table dspmc[] = { ++ { STRSTARKUTF8, STRKUTF8 }, ++ { STRKEUC, STRKEUC }, ++ { STRGB2312, STRKEUC }, ++ { STRKBIG5, STRKBIG5 }, ++ { NULL, NULL } ++ }; ++ Char *codeset; + ++ codeset = str2short(nl_langinfo(CODESET)); ++ if (*codeset != '\0') { ++ for (i = 0; dspmc[i].n; i++) { ++ Char *estr; ++ if (dspmc[i].n[0] && t_pmatch(pcp, dspmc[i].n, &estr, 0) > 0) { ++ set(CHECK_MBYTEVAR, Strsave(dspmc[i].v), VAR_READWRITE); ++ update_dspmbyte_vars(); ++ return; ++ } ++ } ++ } ++#endif ++ + if (*pcp == '\0') + return; + +diff -ur tcsh-6.13.00/tc.const.c tcsh/tc.const.c +--- tcsh-6.13.00/tc.const.c 2004-09-14 20:01:21.579556624 +0200 ++++ tcsh/tc.const.c 2004-09-14 19:31:30.274876328 +0200 +@@ -129,6 +129,8 @@ + Char STRKBIG5[] = { 'b', 'i', 'g', '5', '\0' }; + Char STRKUTF8[] = { 'u', 't', 'f', '8', '\0' }; + Char STRSTARKUTF8[] = { '*', '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' }; + # endif /* MBYTEMAP */ diff --git a/app-shells/tcsh/files/tcsh-6.13.00-cstr.patch b/app-shells/tcsh/files/tcsh-6.13.00-cstr.patch new file mode 100644 index 000000000000..c8b64dde7eba --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-cstr.patch @@ -0,0 +1,11 @@ +--- tcsh-6.13.00/tc.bind.c.cstr 2004-09-21 23:07:46.383456872 +0200 ++++ tcsh-6.13.00/tc.bind.c 2004-09-21 23:08:38.053601816 +0200 +@@ -195,7 +195,7 @@ + return; + if (key) { + if (SetArrowKeys(&in, XmapStr(&out), ntype) == -1) +- xprintf(CGETS(20, 2, "Bad key name: %S\n"), in); ++ xprintf(CGETS(20, 2, "Bad key name: %S\n"), in.buf); + } + else + AddXkey(&in, XmapStr(&out), ntype); diff --git a/app-shells/tcsh/files/tcsh-6.13.00-dspmbyte.patch b/app-shells/tcsh/files/tcsh-6.13.00-dspmbyte.patch new file mode 100644 index 000000000000..e3aad1f940aa --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-dspmbyte.patch @@ -0,0 +1,60 @@ +--- tcsh-6.13.00/tc.const.c.mbyte 2004-03-21 17:48:15.000000000 +0100 ++++ tcsh-6.13.00/tc.const.c 2004-08-18 10:48:34.322157016 +0200 +@@ -128,7 +128,7 @@ + Char STRKSJIS[] = { 's', 'j', 'i', 's', '\0' }; + Char STRKBIG5[] = { 'b', 'i', 'g', '5', '\0' }; + Char STRKUTF8[] = { 'u', 't', 'f', '8', '\0' }; +-Char STRSTARKUTF8[] = { '*', 'u', 't', 'f', '8', '\0' }; ++Char STRSTARKUTF8[] = { '*', 'u', 't', 'f', '*', '8', '\0' }; + # ifdef MBYTEDEBUG /* Sorry, use for beta testing */ + Char STRmbytemap[] = { 'm', 'b', 'y', 't', 'e', 'm', 'a', 'p', '\0' }; + # endif /* MBYTEMAP */ +--- tcsh-6.13.00/sh.glob.c.mbyte 2004-08-18 11:14:33.033196920 +0200 ++++ tcsh-6.13.00/sh.glob.c 2004-08-18 11:21:16.575849112 +0200 +@@ -987,12 +987,12 @@ + if (endstr == NULL) + /* Exact matches only */ + for (p = blk; *p; p++) +- gres |= t_pmatch(string, *p, &tstring, 0) == 2 ? 1 : 0; ++ gres |= t_pmatch(string, *p, &tstring, 1) == 2 ? 1 : 0; + else { + /* partial matches */ + int minc = 0x7fffffff; + for (p = blk; *p; p++) +- if (t_pmatch(string, *p, &tstring, 0) != 0) { ++ if (t_pmatch(string, *p, &tstring, 1) != 0) { + int t = (int) (tstring - string); + gres |= 1; + if (minc == -1 || minc > t) +@@ -1079,8 +1079,8 @@ + if (match) + continue; + if (rangec == '-' && *(pattern-2) != '[' && *pattern != ']') { +- match = (globcharcoll(stringc, *pattern & TRIM, cs) <= 0 && +- globcharcoll(*(pattern-2) & TRIM, stringc, cs) <= 0); ++ match = (globcharcoll(stringc, *pattern & TRIM, 0) <= 0 && ++ globcharcoll(*(pattern-2) & TRIM, stringc, 0) <= 0); + pattern++; + } + else +@@ -1093,7 +1093,8 @@ + *estr = string; + break; + default: +- if ((patternc & TRIM) != stringc) ++ if (cs ? (patternc & TRIM) != stringc ++ : Tolower(patternc & TRIM) != Tolower(stringc)) + return (0); + *estr = string; + break; +--- tcsh-6.13.00/sh.set.c.mbyte 2004-03-21 17:48:14.000000000 +0100 ++++ tcsh-6.13.00/sh.set.c 2004-08-18 10:48:34.000000000 +0200 +@@ -1260,7 +1260,7 @@ + + for (i = 0; dspmt[i].n; i++) { + Char *estr; +- if (t_pmatch(pcp, dspmt[i].n, &estr, 1) > 0) { ++ if (dspmt[i].n[0] && t_pmatch(pcp, dspmt[i].n, &estr, 0) > 0) { + set(CHECK_MBYTEVAR, Strsave(dspmt[i].v), VAR_READWRITE); + update_dspmbyte_vars(); + break; diff --git a/app-shells/tcsh/files/tcsh-6.13.00-fcntl.patch b/app-shells/tcsh/files/tcsh-6.13.00-fcntl.patch new file mode 100644 index 000000000000..8bc3602c2b33 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-fcntl.patch @@ -0,0 +1,20 @@ +--- tcsh-6.13.00/sh.sem.c.fcntl 2004-08-23 12:55:48.300002488 +0200 ++++ tcsh-6.13.00/sh.sem.c 2004-08-23 13:00:59.745655552 +0200 +@@ -863,7 +863,7 @@ + stderror(ERR_SYSTEM, tmp, strerror(errno)); + /* allow input files larger than 2Gb */ + #ifndef WINNT_NATIVE +- (void) fcntl(fd, O_LARGEFILE, 0); ++ (void) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_LARGEFILE); + #endif /*!WINNT_NATIVE*/ + (void) dmove(fd, 0); + } +@@ -923,7 +923,7 @@ + stderror(ERR_SYSTEM, tmp, strerror(errno)); + /* allow input files larger than 2Gb */ + #ifndef WINNT_NATIVE +- (void) fcntl(fd, O_LARGEFILE, 0); ++ (void) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_LARGEFILE); + #endif /*!WINNT_NATIVE*/ + } + (void) dmove(fd, 1); diff --git a/app-shells/tcsh/files/tcsh-6.13.00-glob.patch b/app-shells/tcsh/files/tcsh-6.13.00-glob.patch new file mode 100644 index 000000000000..ed984bf4e6e8 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-glob.patch @@ -0,0 +1,11 @@ +--- tcsh-6.13.00/glob.c.glob 2004-08-18 18:24:23.163464816 +0200 ++++ tcsh-6.13.00/glob.c 2004-08-18 18:24:45.622050592 +0200 +@@ -164,6 +164,8 @@ + } else { + if (islower(c1) && isupper(c2)) + return (1); ++ if (isupper(c1) && islower(c2)) ++ return (-1); + } + s1[0] = c1; + s2[0] = c2; diff --git a/app-shells/tcsh/files/tcsh-6.13.00-iconv.patch b/app-shells/tcsh/files/tcsh-6.13.00-iconv.patch new file mode 100644 index 000000000000..adf7405f1430 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-iconv.patch @@ -0,0 +1,402 @@ +diff -urN tcsh-6.13.00/config.h.in tcsh/config.h.in +--- tcsh-6.13.00/config.h.in 1999-05-11 15:22:46.000000000 +0200 ++++ tcsh/config.h.in 2004-07-16 19:49:55.000000000 +0200 +@@ -1 +1,19 @@ +-/* config.h.in. Generated automatically from configure.in by autoheader. */ ++/* config.h.in. Generated from configure.in by autoheader. */ ++ ++/* Define to 1 if you have the iconv () interface */ ++#undef HAVE_ICONV ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#undef PACKAGE_BUGREPORT ++ ++/* Define to the full name of this package. */ ++#undef PACKAGE_NAME ++ ++/* Define to the full name and version of this package. */ ++#undef PACKAGE_STRING ++ ++/* Define to the one symbol short name of this package. */ ++#undef PACKAGE_TARNAME ++ ++/* Define to the version of this package. */ ++#undef PACKAGE_VERSION +diff -urN tcsh-6.13.00/configure.in tcsh/configure.in +--- tcsh-6.13.00/configure.in 2003-03-12 20:14:50.000000000 +0100 ++++ tcsh/configure.in 2004-07-17 01:54:18.474111752 +0200 +@@ -261,6 +261,8 @@ + AC_SEARCH_LIBS(tgetent, termlib curses termcap) + AC_SEARCH_LIBS(gethostbyname, nsl) + AC_SEARCH_LIBS(connect, socket) ++AC_SEARCH_LIBS([iconv], [iconv], [AC_DEFINE([HAVE_ICONV], [1], ++ [Define to 1 if you have the iconv () interface])]) + + dnl This is not good enough; we need sockaddr_storage too. + dnl See whether we can use IPv6 related functions +diff -urN tcsh-6.13.00/nls/C/charset tcsh/nls/C/charset +--- tcsh-6.13.00/nls/C/charset 2004-02-23 16:04:08.000000000 +0100 ++++ tcsh/nls/C/charset 2004-07-17 02:16:24.186572824 +0200 +@@ -1 +1,3 @@ + $ codeset=US-ASCII ++$set 255 ++1 US-ASCII +diff -urN tcsh-6.13.00/nls/et/charset tcsh/nls/et/charset +--- tcsh-6.13.00/nls/et/charset 2004-02-23 16:04:08.000000000 +0100 ++++ tcsh/nls/et/charset 2004-07-17 02:16:27.741032464 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-1 ++$set 255 ++1 ISO-8859-1 +diff -urN tcsh-6.13.00/nls/finnish/charset tcsh/nls/finnish/charset +--- tcsh-6.13.00/nls/finnish/charset 2004-02-23 16:04:09.000000000 +0100 ++++ tcsh/nls/finnish/charset 2004-07-17 02:16:34.898944296 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-1 ++$set 255 ++1 ISO-8859-1 +diff -urN tcsh-6.13.00/nls/french/charset tcsh/nls/french/charset +--- tcsh-6.13.00/nls/french/charset 2004-02-23 16:04:09.000000000 +0100 ++++ tcsh/nls/french/charset 2004-07-17 02:16:39.592230808 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-1 ++$set 255 ++1 ISO-8859-1 +diff -urN tcsh-6.13.00/nls/german/charset tcsh/nls/german/charset +--- tcsh-6.13.00/nls/german/charset 2004-02-23 16:04:09.000000000 +0100 ++++ tcsh/nls/german/charset 2004-07-17 02:16:40.647070448 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-1 ++$set 255 ++1 ISO-8859-1 +diff -urN tcsh-6.13.00/nls/greek/charset tcsh/nls/greek/charset +--- tcsh-6.13.00/nls/greek/charset 2004-02-23 16:04:09.000000000 +0100 ++++ tcsh/nls/greek/charset 2004-07-17 02:16:41.545933800 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-7 ++$set 255 ++1 ISO-8859-7 +diff -urN tcsh-6.13.00/nls/italian/charset tcsh/nls/italian/charset +--- tcsh-6.13.00/nls/italian/charset 2004-02-23 16:04:09.000000000 +0100 ++++ tcsh/nls/italian/charset 2004-07-17 02:16:42.464794112 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-1 ++$set 255 ++1 ISO-8859-1 +diff -urN tcsh-6.13.00/nls/ja/charset tcsh/nls/ja/charset +--- tcsh-6.13.00/nls/ja/charset 2004-02-23 16:04:10.000000000 +0100 ++++ tcsh/nls/ja/charset 2004-07-17 02:16:43.342660656 +0200 +@@ -1 +1,3 @@ + $ codeset=EUC-JP ++$set 255 ++1 EUC-JP +diff -urN tcsh-6.13.00/nls/Makefile tcsh/nls/Makefile +--- tcsh-6.13.00/nls/Makefile 2004-02-21 21:34:26.000000000 +0100 ++++ tcsh/nls/Makefile 2004-07-16 19:09:58.000000000 +0200 +@@ -2,7 +2,7 @@ + SUBDIRS= C et finnish french german greek italian ja pl russian \ + spanish ukrainian + #GENCAT= gencat --new +-#CHARSET= charset ++CHARSET= charset + GENCAT= gencat + + catalogs: +diff -urN tcsh-6.13.00/nls/pl/charset tcsh/nls/pl/charset +--- tcsh-6.13.00/nls/pl/charset 2004-02-23 16:04:10.000000000 +0100 ++++ tcsh/nls/pl/charset 2004-07-17 02:16:44.124541792 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-2 ++$set 255 ++1 ISO-8859-2 +diff -urN tcsh-6.13.00/nls/russian/charset tcsh/nls/russian/charset +--- tcsh-6.13.00/nls/russian/charset 2004-02-23 16:04:10.000000000 +0100 ++++ tcsh/nls/russian/charset 2004-07-17 02:16:44.827434936 +0200 +@@ -1 +1,3 @@ + $ codeset=KOI8-R ++$set 255 ++1 KOI8-R +diff -urN tcsh-6.13.00/nls/spanish/charset tcsh/nls/spanish/charset +--- tcsh-6.13.00/nls/spanish/charset 2004-02-23 16:04:10.000000000 +0100 ++++ tcsh/nls/spanish/charset 2004-07-17 02:16:45.685304520 +0200 +@@ -1 +1,3 @@ + $ codeset=ISO-8859-1 ++$set 255 ++1 ISO-8859-1 +diff -urN tcsh-6.13.00/nls/ukrainian/charset tcsh/nls/ukrainian/charset +--- tcsh-6.13.00/nls/ukrainian/charset 2004-02-23 16:04:11.000000000 +0100 ++++ tcsh/nls/ukrainian/charset 2004-07-17 02:16:46.448188544 +0200 +@@ -1 +1,3 @@ + $ codeset=KOI8-U ++$set 255 ++1 KOI8-U +diff -urN tcsh-6.13.00/sh.c tcsh/sh.c +--- tcsh-6.13.00/sh.c 2004-02-21 21:34:24.000000000 +0100 ++++ tcsh/sh.c 2004-07-17 02:29:55.143288664 +0200 +@@ -2387,7 +2387,7 @@ + { + #ifdef NLS_BUGS + #ifdef NLS_CATALOGS +- (void)catclose(catd); ++ nlsclose(); + #endif /* NLS_CATALOGS */ + #endif /* NLS_BUGS */ + +@@ -2462,7 +2462,7 @@ + * because messages will stop working on the parent too. + */ + if (child == 0) +- (void) catclose(catd); ++ nlsclose(); + #endif /* NLS_CATALOGS */ + #ifdef WINNT_NATIVE + nt_cleanup(); +diff -urN tcsh-6.13.00/sh.decls.h tcsh/sh.decls.h +--- tcsh-6.13.00/sh.decls.h 2004-03-21 17:48:14.000000000 +0100 ++++ tcsh/sh.decls.h 2004-07-17 01:57:10.879902088 +0200 +@@ -33,6 +33,11 @@ + #ifndef _h_sh_decls + #define _h_sh_decls + ++#ifdef HAVE_ICONV ++#include <iconv.h> ++#include <nl_types.h> ++#endif ++ + /* + * sh.c + */ +@@ -178,7 +183,12 @@ + #if defined(FILEC) && defined(TIOCSTI) + extern int sortscmp __P((Char **, Char **)); + #endif ++ ++#ifdef HAVE_ICONV ++extern char *iconv_catgets __P((nl_catd, int, int, const char *)); ++#endif + extern void nlsinit __P((void)); ++extern void nlsclose __P((void)); + extern int t_pmatch __P((Char *, Char *, Char **, int)); + + /* +diff -urN tcsh-6.13.00/sh.func.c tcsh/sh.func.c +--- tcsh-6.13.00/sh.func.c 2004-05-13 17:23:39.000000000 +0200 ++++ tcsh/sh.func.c 2004-07-17 02:16:08.605941440 +0200 +@@ -41,6 +41,10 @@ + #include "nt.const.h" + #endif /* WINNT_NATIVE */ + ++#ifdef HAVE_ICONV ++#include <langinfo.h> ++#endif ++ + /* + * C shell + */ +@@ -1379,16 +1383,16 @@ + # ifdef LC_COLLATE + (void) setlocale(LC_COLLATE, ""); + # endif ++# ifdef LC_CTYPE ++ (void) setlocale(LC_CTYPE, ""); /* for iscntrl */ ++# endif /* LC_CTYPE */ + # ifdef NLS_CATALOGS + # ifdef LC_MESSAGES + (void) setlocale(LC_MESSAGES, ""); + # endif /* LC_MESSAGES */ +- (void) catclose(catd); ++ nlsclose(); + nlsinit(); + # endif /* NLS_CATALOGS */ +-# ifdef LC_CTYPE +- (void) setlocale(LC_CTYPE, ""); /* for iscntrl */ +-# endif /* LC_CTYPE */ + # ifdef SETLOCALEBUG + dont_free = 0; + # endif /* SETLOCALEBUG */ +@@ -1412,7 +1416,7 @@ + + #ifdef NLS_CATALOGS + if (eq(vp, STRNLSPATH)) { +- (void) catclose(catd); ++ nlsclose(); + nlsinit(); + } + #endif +@@ -1571,16 +1575,16 @@ + # ifdef LC_COLLATE + (void) setlocale(LC_COLLATE, ""); + # endif ++# ifdef LC_CTYPE ++ (void) setlocale(LC_CTYPE, ""); /* for iscntrl */ ++# endif /* LC_CTYPE */ + # ifdef NLS_CATALOGS + # ifdef LC_MESSAGES + (void) setlocale(LC_MESSAGES, ""); + # endif /* LC_MESSAGES */ +- (void) catclose(catd); ++ nlsclose(); + nlsinit(); + # endif /* NLS_CATALOGS */ +-# ifdef LC_CTYPE +- (void) setlocale(LC_CTYPE, ""); /* for iscntrl */ +-# endif /* LC_CTYPE */ + # ifdef SETLOCALEBUG + dont_free = 0; + # endif /* SETLOCALEBUG */ +@@ -1613,7 +1617,7 @@ + #endif /* COLOR_LS_F */ + #ifdef NLS_CATALOGS + else if (eq(name, STRNLSPATH)) { +- (void) catclose(catd); ++ nlsclose(); + nlsinit(); + } + #endif +@@ -2435,6 +2439,56 @@ + flush(); + } + ++#ifdef HAVE_ICONV ++iconv_t catgets_iconv; /* Or (iconv_t)-1 */ ++ ++char * ++iconv_catgets(catd, set_id, msg_id, s) ++nl_catd catd; ++int set_id, msg_id; ++const char *s; ++{ ++ static char *buf; /* = NULL; */ ++ static size_t buf_size; /* = 0; */ ++ ++ char *orig, *src, *dest; ++ size_t src_size, dest_size; ++ ++ orig = catgets(catd, set_id, msg_id, s); ++ if (catgets_iconv == (iconv_t)-1 || orig == s) ++ return orig; ++ src = orig; ++ src_size = strlen (src) + 1; ++ dest = buf; ++ while (src_size != 0) { ++ dest_size = buf + buf_size - dest; ++ if (iconv(catgets_iconv, &src, &src_size, &dest, &dest_size) ++ == (size_t)-1) { ++ switch (errno) { ++ case E2BIG: ++ { ++ char *p; ++ ++ if (buf_size == 0) ++ buf_size = 32; ++ p = xrealloc (buf, 2 * buf_size); ++ if (p == NULL) ++ return orig; ++ buf_size *= 2; ++ dest = p + (dest - buf); ++ buf = p; ++ break; ++ } ++ ++ case EILSEQ: case EINVAL: default: ++ return orig; ++ } ++ } ++ } ++ return buf; ++} ++#endif ++ + void + nlsinit() + { +@@ -2445,6 +2499,11 @@ + xsnprintf((char *)catalog, sizeof(catalog), "tcsh.%s", + short2str(varval(STRcatalog))); + catd = catopen(catalog, MCLoadBySet); ++#ifdef HAVE_ICONV ++ /* catgets (), not CGETS, the charset name should be in ASCII anyway. */ ++ catgets_iconv = iconv_open (nl_langinfo (CODESET), ++ catgets(catd, 255, 1, "ASCII")); ++#endif /* HAVE_ICONV */ + #endif /* NLS_CATALOGS */ + #ifdef WINNT_NATIVE + nls_dll_init(); +@@ -2455,3 +2514,15 @@ + editinit(); /* init the editor messages */ + terminit(); /* init the termcap messages */ + } ++ ++void ++nlsclose() ++{ ++#ifdef HAVE_ICONV ++ if (catgets_iconv != (iconv_t)-1) { ++ iconv_close (catgets_iconv); ++ catgets_iconv = (iconv_t)-1; ++ } ++#endif /* HAVE_ICONV */ ++ catclose(catd); ++} +diff -urN tcsh-6.13.00/sh.h tcsh/sh.h +--- tcsh-6.13.00/sh.h 2004-02-21 21:34:25.000000000 +0100 ++++ tcsh/sh.h 2004-07-17 01:50:28.439082392 +0200 +@@ -35,6 +35,10 @@ + + #include "config.h" + ++#ifdef HAVE_ICONV ++#include <iconv.h> ++#endif ++ + #ifndef HAVE_QUAD + #ifdef __GNUC__ + #define HAVE_QUAD 1 +@@ -1245,7 +1249,12 @@ + # define MCLoadBySet 0 + # endif + EXTERN nl_catd catd; +-# define CGETS(b, c, d) catgets(catd, b, c, d) ++# ifdef HAVE_ICONV ++EXTERN iconv_t catgets_iconv; /* Or (iconv_t)-1 */ ++# define CGETS(b, c, d) iconv_catgets(catd, b, c, d) ++# else ++# define CGETS(b, c, d) catgets(catd, b, c, d) ++# endif + # define CSAVS(b, c, d) strsave(CGETS(b, c, d)) + # else + # define CGETS(b, c, d) d +diff -urN tcsh-6.13.00/sh.misc.c tcsh/sh.misc.c +--- tcsh-6.13.00/sh.misc.c 2003-03-12 20:14:51.000000000 +0100 ++++ tcsh/sh.misc.c 2004-07-17 02:30:01.477325744 +0200 +@@ -260,7 +260,7 @@ + + #ifdef NLS_BUGS + #ifdef NLS_CATALOGS +- (void)catclose(catd); ++ nlsclose(); + #endif /* NLS_CATALOGS */ + #endif /* NLS_BUGS */ + #ifdef YPBUGS +diff -urN tcsh-6.13.00/sh.set.c tcsh/sh.set.c +--- tcsh-6.13.00/sh.set.c 2004-03-21 17:48:14.000000000 +0100 ++++ tcsh/sh.set.c 2004-07-17 02:04:17.022118624 +0200 +@@ -192,7 +192,7 @@ + #endif + #ifdef NLS_CATALOGS + else if (eq(vp, STRcatalog)) { +- (void) catclose(catd); ++ nlsclose(); + nlsinit(); + } + #if defined(FILEC) && defined(TIOCSTI) +@@ -779,7 +779,7 @@ + update_dspmbyte_vars(); + #endif + #ifdef NLS_CATALOGS +- (void) catclose(catd); ++ nlsclose(); + nlsinit(); + #endif /* NLS_CATALOGS */ + } + diff --git a/app-shells/tcsh/files/tcsh-6.13.00-utmp.patch b/app-shells/tcsh/files/tcsh-6.13.00-utmp.patch new file mode 100644 index 000000000000..5f6d583608a6 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-utmp.patch @@ -0,0 +1,59 @@ +Use libc's built-in getutXXX() functions for manipulating the file. + +--- tcsh-6.13.00/tc.who.c.utmp 2004-08-17 17:19:44.541315488 +0200 ++++ tcsh-6.13.00/tc.who.c 2004-08-17 17:22:12.251860072 +0200 +@@ -165,12 +165,13 @@ + watch_login(force) + int force; + { +- int utmpfd, comp = -1, alldone; ++ int comp = -1, alldone; + int firsttime = stlast == 1; + #ifdef BSDSIGS + sigmask_t omask; + #endif /* BSDSIGS */ + struct utmp utmp; ++ struct utmp *uptr; + struct who *wp, *wpnew; + struct varent *v; + Char **vp = NULL; +@@ -263,18 +264,8 @@ + return; + } + stlast = sta.st_mtime; +- if ((utmpfd = open(_PATH_UTMP, O_RDONLY|O_LARGEFILE)) < 0) { +- if (!force) +- xprintf(CGETS(26, 2, +- "%s cannot be opened. Please \"unset watch\".\n"), +- _PATH_UTMP); +-# ifdef BSDSIGS +- (void) sigsetmask(omask); +-# else +- (void) sigrelse(SIGINT); +-# endif +- return; +- } ++ utmpname(_PATH_UTMP); ++ setutent(); + + /* + * xterm clears the entire utmp entry - mark everyone on the status list +@@ -289,7 +280,8 @@ + * Read in the utmp file, sort the entries, and update existing entries or + * add new entries to the status list. + */ +- while (read(utmpfd, (char *) &utmp, sizeof utmp) == sizeof utmp) { ++ while ((uptr = getutent())) { ++ memcpy(&utmp, uptr, sizeof(utmp)); + + # ifdef DEAD_PROCESS + # ifndef IRIS4D +@@ -385,7 +377,7 @@ + wp->who_prev = wpnew; /* linked in now */ + } + } +- (void) close(utmpfd); ++ endutent(); + # if defined(UTHOST) && defined(_SEQUENT_) + endutent(); + # endif diff --git a/app-shells/tcsh/files/tcsh-6.13.00-winchg.patch b/app-shells/tcsh/files/tcsh-6.13.00-winchg.patch new file mode 100644 index 000000000000..87c2a22b020c --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.13.00-winchg.patch @@ -0,0 +1,50 @@ +diff -urN tcsh-6.13.00/ed.init.c tcsh-6.13.01/ed.init.c +--- tcsh-6.13.00/ed.init.c 2002-07-07 00:28:13.000000000 +0200 ++++ tcsh-6.13.01/ed.init.c 2004-05-21 20:51:25.000000000 +0200 +@@ -127,6 +127,7 @@ + #else /* BSDSIGS */ + (void) sigrelse(SIG_WINDOW); + #endif /* BSDSIGS */ ++ windowchg = 0; + } + + sigret_t +diff -urN tcsh-6.13.00/ed.inputl.c tcsh-6.13.01/ed.inputl.c +--- tcsh-6.13.00/ed.inputl.c 2002-06-25 21:02:11.000000000 +0200 ++++ tcsh-6.13.01/ed.inputl.c 2004-05-21 20:50:36.000000000 +0200 +@@ -738,6 +738,10 @@ + #ifdef WINNT_NATIVE + __nt_want_vcode = 1; + #endif /* WINNT_NATIVE */ ++#ifdef SIG_WINDOW ++ if (windowchg) ++ (void) check_window_size(0); /* for window systems */ ++#endif /* SIG_WINDOW */ + while ((num_read = read(SHIN, (char *) &tcp, 1)) == -1) { + if (errno == EINTR) + continue; +diff -urN tcsh-6.13.00/sh.c tcsh-6.13.01/sh.c +--- tcsh-6.13.00/sh.c 2004-02-21 21:34:24.000000000 +0100 ++++ tcsh-6.13.01/sh.c 2004-07-24 23:52:48.000000000 +0200 +@@ -2181,7 +2181,6 @@ + freesyn(savet), savet = NULL; + #ifdef SIG_WINDOW + if (windowchg || (catch && intty && !whyles && !tellwhat)) { +- windowchg = 0; + (void) check_window_size(0); /* for window systems */ + } + #endif /* SIG_WINDOW */ +diff -urN tcsh-6.13.00/sh.lex.c tcsh-6.13.01/sh.lex.c +--- tcsh-6.13.00/sh.lex.c 2003-08-04 18:19:13.000000000 +0200 ++++ tcsh-6.13.01/sh.lex.c 2004-05-21 20:50:36.000000000 +0200 +@@ -1765,6 +1775,10 @@ + if (c == 0 || (c < 0 && fixio(SHIN, errno) == -1)) + return (-1); + } ++#ifdef SIG_WINDOW ++ if (windowchg) ++ (void) check_window_size(0); /* for window systems */ ++#endif /* SIG_WINDOW */ + #ifndef WINNT_NATIVE + c = fbuf[(int) fseekp / BUFSIZE][(int) fseekp % BUFSIZE]; + fseekp++; |