Accepting request 92396 from shells
- Increase size of hash table for runtime linker a lot - 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 - 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) OBS-URL: https://build.opensuse.org/request/show/92396 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/tcsh?expand=0&rev=41
This commit is contained in:
commit
a4d7e022e1
30
nls-iconv
30
nls-iconv
@ -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
|
@ -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);
|
@ -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
|
@ -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;
|
@ -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)
|
||||
{
|
@ -1,27 +0,0 @@
|
||||
Author: christos <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)
|
@ -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;
|
||||
}
|
@ -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--;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
@ -1,16 +0,0 @@
|
||||
Author: Jean-Luc Leger <reiga@dspnet.fr.eu.org>
|
||||
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
|
@ -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
|
830
tcsh-6.17.02.dif
830
tcsh-6.17.02.dif
@ -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 <features.h>
|
||||
*/
|
||||
|
||||
-#define _LARGEFILE_SOURCE
|
||||
-#define _LARGEFILE64_SOURCE
|
||||
-#define _FILE_OFFSET_BITS 64
|
||||
+#ifndef _LARGEFILE_SOURCE
|
||||
+# define _LARGEFILE_SOURCE
|
||||
+#endif
|
||||
+#ifndef _LARGEFILE64_SOURCE
|
||||
+# define _LARGEFILE64_SOURCE
|
||||
+#endif
|
||||
+#ifndef _FILE_OFFSET_BITS
|
||||
+# define _FILE_OFFSET_BITS 64
|
||||
+#endif
|
||||
|
||||
/****************** local defines *********************/
|
||||
+#if !defined(PW_SHADOW)
|
||||
+# define PW_SHADOW
|
||||
+#endif
|
||||
#ifndef _PATH_TCSHELL
|
||||
#define _PATH_TCSHELL "/bin/tcsh"
|
||||
#endif
|
||||
@@ -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 <features.h>
|
||||
/*
|
||||
* 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 <sys/sysinfo.h>
|
||||
+# include <sys/sysinfo.h>
|
||||
|
||||
/* 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 <sys/utsname.h>
|
||||
+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 <paths.h>
|
||||
#endif
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
# endif /* !_PATH_DOTLOGIN */
|
||||
#endif /* sgi || OREO || cray || AMIX || CDC */
|
||||
|
||||
-#if (defined(_CRAYCOM) || defined(Lynx)) && !defined(_PATH_TCSHELL)
|
||||
+#if (defined(_CRAYCOM) || defined(Lynx) || defined(linux)) && !defined(_PATH_TCSHELL)
|
||||
# define _PATH_TCSHELL "/bin/tcsh" /* 1st class shell */
|
||||
#endif /* _CRAYCOM && !_PATH_TCSHELL */
|
||||
|
||||
--- sh.c
|
||||
+++ sh.c 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 <features.h>
|
||||
#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 <termio.h>
|
||||
# endif /* _UWIN */
|
||||
-# if SYSVREL > 3
|
||||
+# if SYSVREL > 3 || defined(linux)
|
||||
# undef TIOCGLTC /* we don't need those, since POSIX has them */
|
||||
# undef TIOCSLTC
|
||||
# undef CSWTCH
|
||||
@@ -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 <sys/ioctl.h>
|
||||
+# if SYSVREL > 3 || defined(linux)
|
||||
+# undef TIOCGLTC /* we don't need those, since POSIX has them */
|
||||
+# undef TIOCSLTC
|
||||
+# undef CSWTCH
|
||||
+# define CSWTCH _POSIX_VDISABLE /* So job control works */
|
||||
+# endif /* SYSVREL > 3 */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -1203,9 +1209,7 @@ extern char **environ;
|
||||
# ifdef NLS_CATALOGS
|
||||
# if defined(linux) || defined(__GNU__) || defined(__GLIBC__)
|
||||
# include <locale.h>
|
||||
-# ifdef notdef
|
||||
-# include <localeinfo.h> /* Has this changed ? */
|
||||
-# endif
|
||||
+# include <langinfo.h>
|
||||
# include <features.h>
|
||||
# endif
|
||||
# ifdef SUNOS4
|
||||
--- sh.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
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:da47874562a72563ac071cabf3e1380b238987c174791c84a1a7357cc611d780
|
||||
size 757076
|
56
tcsh-6.17.03-colorls.dif
Normal file
56
tcsh-6.17.03-colorls.dif
Normal file
@ -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;
|
||||
}
|
||||
}
|
156
tcsh-6.17.06-catalogs.dif
Normal file
156
tcsh-6.17.06-catalogs.dif
Normal file
@ -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) $< $@
|
||||
|
130
tcsh-6.17.06-dspmbyte.dif
Normal file
130
tcsh-6.17.06-dspmbyte.dif
Normal file
@ -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' };
|
245
tcsh-6.17.06.dif
Normal file
245
tcsh-6.17.06.dif
Normal file
@ -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 <features.h>
|
||||
/*
|
||||
* 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
|
||||
|
3
tcsh-6.17.06.tar.bz2
Normal file
3
tcsh-6.17.06.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f3b07178731ebd262a8e38165795eb997b24c39008e15227fee34e999f17e406
|
||||
size 764795
|
66
tcsh.changes
66
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
|
||||
|
||||
|
138
tcsh.spec
138
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 <christos@deshaw.com>
|
||||
Scott Krotz <krotz@mot.com>
|
||||
|
||||
%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
|
||||
|
Loading…
Reference in New Issue
Block a user