Update to tcsh 6.21.00
OBS-URL: https://build.opensuse.org/package/show/shells/tcsh?expand=0&rev=78
This commit is contained in:
parent
8eef889f4f
commit
7225664b5a
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
--- sh.dol.c
|
--- sh.dol.c
|
||||||
+++ sh.dol.c 2016-11-25 08:00:30.455106978 +0000
|
+++ sh.dol.c 2016-11-25 08:00:30.455106978 +0000
|
||||||
@@ -429,6 +429,8 @@ Dgetdol(void)
|
@@ -426,6 +426,8 @@ Dgetdol(void)
|
||||||
size_t cbp = 0;
|
size_t cbp = 0;
|
||||||
int old_pintr_disabled;
|
int old_pintr_disabled;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- ed.defns.c
|
--- ed.defns.c
|
||||||
+++ ed.defns.c 2007-08-28 10:02:42.862588122 +0000
|
+++ ed.defns.c 2007-08-28 10:02:42.862588122 +0000
|
||||||
@@ -1412,16 +1412,6 @@ editinit(void)
|
@@ -1404,16 +1404,6 @@ editinit(void)
|
||||||
f->desc = CSAVS(3, 52, "Execute command");
|
f->desc = CSAVS(3, 52, "Execute command");
|
||||||
|
|
||||||
f++;
|
f++;
|
||||||
@ -17,7 +17,7 @@
|
|||||||
f->name = "normalize-path";
|
f->name = "normalize-path";
|
||||||
f->func = F_PATH_NORM;
|
f->func = F_PATH_NORM;
|
||||||
f->desc = CSAVS(3, 53,
|
f->desc = CSAVS(3, 53,
|
||||||
@@ -1788,6 +1778,16 @@ editinit(void)
|
@@ -1768,6 +1758,16 @@ editinit(void)
|
||||||
f->desc = CSAVS(3, 121, "(WIN32 only) Page visible console window down");
|
f->desc = CSAVS(3, 121, "(WIN32 only) Page visible console window down");
|
||||||
|
|
||||||
f++;
|
f++;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
--- sh.c
|
--- sh.c
|
||||||
+++ sh.c 2016-11-25 08:02:39.616478025 +0000
|
+++ sh.c 2016-11-25 08:02:39.616478025 +0000
|
||||||
@@ -864,9 +864,9 @@ main(int argc, char **argv)
|
@@ -862,9 +862,9 @@ main(int argc, char **argv)
|
||||||
/* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
|
/* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
|
||||||
#if defined(DSPMBYTE)
|
#if defined(DSPMBYTE)
|
||||||
#if defined(NLS) && defined(LC_CTYPE)
|
#if defined(NLS) && defined(LC_CTYPE)
|
||||||
@ -21,7 +21,7 @@
|
|||||||
autoset_dspmbyte(str2short(tcp));
|
autoset_dspmbyte(str2short(tcp));
|
||||||
--- sh.func.c
|
--- sh.func.c
|
||||||
+++ sh.func.c 2016-11-25 08:02:39.616478025 +0000
|
+++ sh.func.c 2016-11-25 08:02:39.616478025 +0000
|
||||||
@@ -1424,14 +1424,6 @@ dosetenv(Char **v, struct command *c)
|
@@ -1420,14 +1420,6 @@ dosetenv(Char **v, struct command *c)
|
||||||
}
|
}
|
||||||
#endif /* apollo */
|
#endif /* apollo */
|
||||||
|
|
||||||
@ -36,7 +36,7 @@
|
|||||||
if (islocale_var(vp)) {
|
if (islocale_var(vp)) {
|
||||||
#ifdef NLS
|
#ifdef NLS
|
||||||
int k;
|
int k;
|
||||||
@@ -1456,6 +1448,13 @@ dosetenv(Char **v, struct command *c)
|
@@ -1452,6 +1444,13 @@ dosetenv(Char **v, struct command *c)
|
||||||
nlsclose();
|
nlsclose();
|
||||||
nlsinit();
|
nlsinit();
|
||||||
# endif /* NLS_CATALOGS */
|
# endif /* NLS_CATALOGS */
|
||||||
@ -52,7 +52,7 @@
|
|||||||
# endif /* SETLOCALEBUG */
|
# endif /* SETLOCALEBUG */
|
||||||
--- sh.set.c
|
--- sh.set.c
|
||||||
+++ sh.set.c 2016-11-25 08:02:39.616478025 +0000
|
+++ sh.set.c 2016-11-25 08:02:39.616478025 +0000
|
||||||
@@ -1168,11 +1168,11 @@ update_dspmbyte_vars(void)
|
@@ -1164,11 +1164,11 @@ update_dspmbyte_vars(void)
|
||||||
dstr1 = vp->vec[0];
|
dstr1 = vp->vec[0];
|
||||||
if(eq (dstr1, STRsjis))
|
if(eq (dstr1, STRsjis))
|
||||||
iskcode = 1;
|
iskcode = 1;
|
||||||
@ -66,7 +66,7 @@
|
|||||||
iskcode = 4;
|
iskcode = 4;
|
||||||
else if ((dstr1[0] - '0') >= 0 && (dstr1[0] - '0') <= 3) {
|
else if ((dstr1[0] - '0') >= 0 && (dstr1[0] - '0') <= 3) {
|
||||||
iskcode = 0;
|
iskcode = 0;
|
||||||
@@ -1256,7 +1256,7 @@ update_dspmbyte_vars(void)
|
@@ -1252,7 +1252,7 @@ update_dspmbyte_vars(void)
|
||||||
_enable_mbdisp = 0;
|
_enable_mbdisp = 0;
|
||||||
dspmbyte_ls = 0;
|
dspmbyte_ls = 0;
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@
|
|||||||
{
|
{
|
||||||
Char mbmapstr[300];
|
Char mbmapstr[300];
|
||||||
for (lp = 0; lp < 256; lp++)
|
for (lp = 0; lp < 256; lp++)
|
||||||
@@ -1264,7 +1264,7 @@ update_dspmbyte_vars(void)
|
@@ -1260,7 +1260,7 @@ update_dspmbyte_vars(void)
|
||||||
mbmapstr[lp] = 0;
|
mbmapstr[lp] = 0;
|
||||||
setcopy(STRmbytemap, mbmapstr, VAR_READWRITE);
|
setcopy(STRmbytemap, mbmapstr, VAR_READWRITE);
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* dspkanji/dspmbyte autosetting */
|
/* dspkanji/dspmbyte autosetting */
|
||||||
@@ -1273,6 +1273,7 @@ void
|
@@ -1269,6 +1269,7 @@ void
|
||||||
autoset_dspmbyte(const Char *pcp)
|
autoset_dspmbyte(const Char *pcp)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -92,7 +92,7 @@
|
|||||||
static const struct dspm_autoset_Table {
|
static const struct dspm_autoset_Table {
|
||||||
Char *n;
|
Char *n;
|
||||||
Char *v;
|
Char *v;
|
||||||
@@ -1295,13 +1296,18 @@ autoset_dspmbyte(const Char *pcp)
|
@@ -1291,13 +1292,18 @@ autoset_dspmbyte(const Char *pcp)
|
||||||
#if defined(HAVE_NL_LANGINFO) && defined(CODESET)
|
#if defined(HAVE_NL_LANGINFO) && defined(CODESET)
|
||||||
static const struct dspm_autoset_Table dspmc[] = {
|
static const struct dspm_autoset_Table dspmc[] = {
|
||||||
{ STRstarutfstar8, STRutf8 },
|
{ STRstarutfstar8, STRutf8 },
|
||||||
@ -113,7 +113,7 @@
|
|||||||
for (i = 0; dspmc[i].n; i++) {
|
for (i = 0; dspmc[i].n; i++) {
|
||||||
--- tc.const.c
|
--- tc.const.c
|
||||||
+++ tc.const.c 2016-11-25 08:02:39.616478025 +0000
|
+++ tc.const.c 2016-11-25 08:02:39.616478025 +0000
|
||||||
@@ -133,10 +133,12 @@ Char STRmmliteral[] = { '-', 'G', '\0' }
|
@@ -130,10 +130,12 @@ Char STRmmliteral[] = { '-', 'G', '\0' }
|
||||||
Char STRmmliteral[] = { '-', '-', 'l', 'i', 't', 'e', 'r', 'a', 'l', '\0' };
|
Char STRmmliteral[] = { '-', '-', 'l', 'i', 't', 'e', 'r', 'a', 'l', '\0' };
|
||||||
# endif
|
# endif
|
||||||
Char STReuc[] = { 'e', 'u', 'c', '\0' };
|
Char STReuc[] = { 'e', 'u', 'c', '\0' };
|
||||||
@ -126,7 +126,7 @@
|
|||||||
Char STRGB2312[] = { 'g', 'b', '2', '3', '1', '2', '\0' };
|
Char STRGB2312[] = { 'g', 'b', '2', '3', '1', '2', '\0' };
|
||||||
# ifdef MBYTEDEBUG /* Sorry, use for beta testing */
|
# ifdef MBYTEDEBUG /* Sorry, use for beta testing */
|
||||||
Char STRmbytemap[] = { 'm', 'b', 'y', 't', 'e', 'm', 'a', 'p', '\0' };
|
Char STRmbytemap[] = { 'm', 'b', 'y', 't', 'e', 'm', 'a', 'p', '\0' };
|
||||||
@@ -443,7 +445,7 @@ Char STRkilldup[] = { 'k', 'i', 'l', 'l
|
@@ -440,7 +442,7 @@ Char STRkilldup[] = { 'k', 'i', 'l', 'l
|
||||||
Char STRshlvl[] = { 's', 'h', 'l', 'v', 'l', '\0' };
|
Char STRshlvl[] = { 's', 'h', 'l', 'v', 'l', '\0' };
|
||||||
Char STRKSHLVL[] = { 'S', 'H', 'L', 'V', 'L', '\0' };
|
Char STRKSHLVL[] = { 'S', 'H', 'L', 'V', 'L', '\0' };
|
||||||
Char STRLANG[] = { 'L', 'A', 'N', 'G', '\0' };
|
Char STRLANG[] = { 'L', 'A', 'N', 'G', '\0' };
|
||||||
|
@ -128,7 +128,7 @@
|
|||||||
|
|
||||||
--- sh.c
|
--- sh.c
|
||||||
+++ sh.c 2011-11-17 08:28:47.000000000 +0000
|
+++ sh.c 2011-11-17 08:28:47.000000000 +0000
|
||||||
@@ -169,8 +169,8 @@ static void st_restore (void *);
|
@@ -166,8 +166,8 @@ static void st_restore (void *);
|
||||||
static void
|
static void
|
||||||
add_localedir_to_nlspath(const char *path)
|
add_localedir_to_nlspath(const char *path)
|
||||||
{
|
{
|
||||||
@ -139,7 +139,7 @@
|
|||||||
char *old;
|
char *old;
|
||||||
char *new, *new_p;
|
char *new, *new_p;
|
||||||
size_t len;
|
size_t len;
|
||||||
@@ -182,7 +182,7 @@ add_localedir_to_nlspath(const char *pat
|
@@ -179,7 +179,7 @@ add_localedir_to_nlspath(const char *pat
|
||||||
if (path == NULL)
|
if (path == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
--- tw.color.c
|
--- tw.color.c
|
||||||
+++ tw.color.c 2016-11-25 08:02:01.645250915 +0000
|
+++ tw.color.c 2016-11-25 08:02:01.645250915 +0000
|
||||||
@@ -89,6 +89,7 @@ static Variable variables[] = {
|
@@ -85,6 +85,7 @@ static Variable variables[] = {
|
||||||
VAR(NOS, "hl", "44;37"), /* Reg file extra hard links, obsolete? */
|
VAR(NOS, "hl", "44;37"), /* Reg file extra hard links, obsolete? */
|
||||||
VAR(NOS, "mh", "44;37"), /* Reg file extra hard links */
|
VAR(NOS, "mh", "44;37"), /* Reg file extra hard links */
|
||||||
VAR(NOS, "ca", "30;41"), /* File with capability */
|
VAR(NOS, "ca", "30;41"), /* File with capability */
|
||||||
@ -12,7 +12,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define nvariables (sizeof(variables)/sizeof(variables[0]))
|
#define nvariables (sizeof(variables)/sizeof(variables[0]))
|
||||||
@@ -325,7 +326,7 @@ parseLS_COLORS(const Char *value)
|
@@ -321,7 +322,7 @@ parseLS_COLORS(const Char *value)
|
||||||
size_t i, len;
|
size_t i, len;
|
||||||
const Char *v; /* pointer in value */
|
const Char *v; /* pointer in value */
|
||||||
char *c; /* pointer in colors */
|
char *c; /* pointer in colors */
|
||||||
@ -21,7 +21,7 @@
|
|||||||
jmp_buf_t osetexit;
|
jmp_buf_t osetexit;
|
||||||
size_t omark;
|
size_t omark;
|
||||||
|
|
||||||
@@ -382,13 +383,10 @@ parseLS_COLORS(const Char *value)
|
@@ -378,13 +379,10 @@ parseLS_COLORS(const Char *value)
|
||||||
if ((Char)variables[i].variable[0] == (v[0] & CHAR) &&
|
if ((Char)variables[i].variable[0] == (v[0] & CHAR) &&
|
||||||
(Char)variables[i].variable[1] == (v[1] & CHAR))
|
(Char)variables[i].variable[1] == (v[1] & CHAR))
|
||||||
break;
|
break;
|
||||||
@ -38,7 +38,7 @@
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -447,12 +445,13 @@ print_color(const Char *fname, size_t le
|
@@ -443,12 +441,13 @@ print_color(const Char *fname, size_t le
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (i == nvariables) {
|
if (i == nvariables) {
|
||||||
|
@ -14,19 +14,19 @@ https://bugzilla.redhat.com/show_bug.cgi?id=879371
|
|||||||
Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
||||||
|
|
||||||
---
|
---
|
||||||
sh.c | 102 +++++++++++++++++++++++++++++++++++++--------------
|
sh.c | 102 ++++++++++++++++++++++++++++++++++++-------------
|
||||||
sh.decls.h | 4 +-
|
sh.decls.h | 4 +
|
||||||
sh.dol.c | 2 -
|
sh.dol.c | 2
|
||||||
sh.err.c | 16 ++++++++
|
sh.err.c | 16 +++++++
|
||||||
sh.h | 18 +++++++++
|
sh.h | 18 ++++++++
|
||||||
sh.hist.c | 122 ++++++++++++++++++++++++++++++-------------------------------
|
sh.hist.c | 126 +++++++++++++++++++++++++++++--------------------------------
|
||||||
sh.lex.c | 8 ++--
|
sh.lex.c | 8 +--
|
||||||
sh.sem.c | 2 -
|
sh.sem.c | 2
|
||||||
8 files changed, 178 insertions(+), 96 deletions(-)
|
8 files changed, 178 insertions(+), 100 deletions(-)
|
||||||
|
|
||||||
--- sh.c
|
--- sh.c
|
||||||
+++ sh.c 2016-11-25 08:03:43.567176291 +0000
|
+++ sh.c 2019-05-09 08:16:41.673852638 +0000
|
||||||
@@ -141,6 +141,7 @@ struct saved_state {
|
@@ -138,6 +138,7 @@ struct saved_state {
|
||||||
int cantell;
|
int cantell;
|
||||||
struct Bin B;
|
struct Bin B;
|
||||||
int justpr;
|
int justpr;
|
||||||
@ -34,7 +34,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static int srccat (Char *, Char *);
|
static int srccat (Char *, Char *);
|
||||||
@@ -1384,7 +1385,7 @@ main(int argc, char **argv)
|
@@ -1359,7 +1360,7 @@ main(int argc, char **argv)
|
||||||
/*
|
/*
|
||||||
* Source history before .login so that it is available in .login
|
* Source history before .login so that it is available in .login
|
||||||
*/
|
*/
|
||||||
@ -43,7 +43,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
#ifndef LOGINFIRST
|
#ifndef LOGINFIRST
|
||||||
if (loginsh)
|
if (loginsh)
|
||||||
(void) srccat(varval(STRhome), STRsldotlogin);
|
(void) srccat(varval(STRhome), STRsldotlogin);
|
||||||
@@ -1507,7 +1508,7 @@ static int
|
@@ -1508,7 +1509,7 @@ static int
|
||||||
srccat(Char *cp, Char *dp)
|
srccat(Char *cp, Char *dp)
|
||||||
{
|
{
|
||||||
if (cp[0] == '/' && cp[1] == '\0')
|
if (cp[0] == '/' && cp[1] == '\0')
|
||||||
@ -52,7 +52,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
else {
|
else {
|
||||||
Char *ep;
|
Char *ep;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
@@ -1523,7 +1524,7 @@ srccat(Char *cp, Char *dp)
|
@@ -1524,7 +1525,7 @@ srccat(Char *cp, Char *dp)
|
||||||
cleanup_push(ep, xfree);
|
cleanup_push(ep, xfree);
|
||||||
ptr = short2str(ep);
|
ptr = short2str(ep);
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
cleanup_until(ep);
|
cleanup_until(ep);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
@@ -1537,20 +1538,49 @@ static int
|
@@ -1538,20 +1539,49 @@ static int
|
||||||
#else
|
#else
|
||||||
int
|
int
|
||||||
#endif /*WINNT_NATIVE*/
|
#endif /*WINNT_NATIVE*/
|
||||||
@ -123,7 +123,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1559,7 +1589,7 @@ srcfile(const char *f, int onlyown, int
|
@@ -1560,7 +1590,7 @@ srcfile(const char *f, int onlyown, int
|
||||||
* fd.
|
* fd.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
@ -132,7 +132,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
{
|
{
|
||||||
st->insource = insource;
|
st->insource = insource;
|
||||||
st->SHIN = SHIN;
|
st->SHIN = SHIN;
|
||||||
@@ -1608,10 +1638,14 @@ st_save(struct saved_state *st, int unit
|
@@ -1609,10 +1639,14 @@ st_save(struct saved_state *st, int unit
|
||||||
st->onelflg = onelflg;
|
st->onelflg = onelflg;
|
||||||
st->enterhist = enterhist;
|
st->enterhist = enterhist;
|
||||||
st->justpr = justpr;
|
st->justpr = justpr;
|
||||||
@ -148,7 +148,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
st->cantell = cantell;
|
st->cantell = cantell;
|
||||||
cpybin(st->B, B);
|
cpybin(st->B, B);
|
||||||
|
|
||||||
@@ -1650,7 +1684,7 @@ st_save(struct saved_state *st, int unit
|
@@ -1651,7 +1685,7 @@ st_save(struct saved_state *st, int unit
|
||||||
evalp = 0;
|
evalp = 0;
|
||||||
alvec = al;
|
alvec = al;
|
||||||
alvecp = 0;
|
alvecp = 0;
|
||||||
@ -157,7 +157,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
if (enterhist)
|
if (enterhist)
|
||||||
HIST = '\0';
|
HIST = '\0';
|
||||||
insource = 1;
|
insource = 1;
|
||||||
@@ -1683,7 +1717,8 @@ st_restore(void *xst)
|
@@ -1684,7 +1718,8 @@ st_restore(void *xst)
|
||||||
}
|
}
|
||||||
cpybin(B, st->B);
|
cpybin(B, st->B);
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
insource = st->insource;
|
insource = st->insource;
|
||||||
SHIN = st->SHIN;
|
SHIN = st->SHIN;
|
||||||
@@ -1719,7 +1754,7 @@ st_restore(void *xst)
|
@@ -1720,7 +1755,7 @@ st_restore(void *xst)
|
||||||
* we don't chance it. This occurs on ".cshrc"s and the like.
|
* we don't chance it. This occurs on ".cshrc"s and the like.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
@ -176,7 +176,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
{
|
{
|
||||||
struct saved_state st;
|
struct saved_state st;
|
||||||
|
|
||||||
@@ -1745,7 +1780,7 @@ srcunit(int unit, int onlyown, int hflg,
|
@@ -1746,7 +1781,7 @@ srcunit(int unit, int onlyown, int hflg,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save the current state and move us to a new state */
|
/* Save the current state and move us to a new state */
|
||||||
@ -185,7 +185,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Now if we are allowing commands to be interrupted, we let ourselves be
|
* Now if we are allowing commands to be interrupted, we let ourselves be
|
||||||
@@ -2087,7 +2122,7 @@ process(int catch)
|
@@ -2088,7 +2123,7 @@ process(int catch)
|
||||||
* elsewhere...
|
* elsewhere...
|
||||||
*/
|
*/
|
||||||
if (enterhist || (catch && intty && !whyles && !tellwhat && !arun))
|
if (enterhist || (catch && intty && !whyles && !tellwhat && !arun))
|
||||||
@ -194,7 +194,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
if (Expand && seterr)
|
if (Expand && seterr)
|
||||||
Expand = 0;
|
Expand = 0;
|
||||||
@@ -2174,21 +2209,28 @@ process(int catch)
|
@@ -2175,21 +2210,28 @@ process(int catch)
|
||||||
void
|
void
|
||||||
dosource(Char **t, struct command *c)
|
dosource(Char **t, struct command *c)
|
||||||
{
|
{
|
||||||
@ -226,7 +226,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
f = globone(*t++, G_ERROR);
|
f = globone(*t++, G_ERROR);
|
||||||
@@ -2197,9 +2239,15 @@ dosource(Char **t, struct command *c)
|
@@ -2198,9 +2240,15 @@ dosource(Char **t, struct command *c)
|
||||||
xfree(f);
|
xfree(f);
|
||||||
t = glob_all_or_error(t);
|
t = glob_all_or_error(t);
|
||||||
cleanup_push(t, blk_cleanup);
|
cleanup_push(t, blk_cleanup);
|
||||||
@ -245,8 +245,8 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
--- sh.decls.h
|
--- sh.decls.h
|
||||||
+++ sh.decls.h 2016-11-25 08:03:43.567176291 +0000
|
+++ sh.decls.h 2019-05-09 08:16:41.673852638 +0000
|
||||||
@@ -38,6 +38,7 @@
|
@@ -37,6 +37,7 @@
|
||||||
*/
|
*/
|
||||||
extern Char *gethdir (const Char *);
|
extern Char *gethdir (const Char *);
|
||||||
extern void dosource (Char **, struct command *);
|
extern void dosource (Char **, struct command *);
|
||||||
@ -254,7 +254,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
extern void exitstat (void);
|
extern void exitstat (void);
|
||||||
extern void goodbye (Char **, struct command *);
|
extern void goodbye (Char **, struct command *);
|
||||||
extern void importpath (Char *);
|
extern void importpath (Char *);
|
||||||
@@ -99,6 +100,7 @@ extern void cleanup_until_mark(void);
|
@@ -98,6 +99,7 @@ extern void cleanup_until_mark(void);
|
||||||
extern size_t cleanup_push_mark(void);
|
extern size_t cleanup_push_mark(void);
|
||||||
extern void cleanup_pop_mark(size_t);
|
extern void cleanup_pop_mark(size_t);
|
||||||
extern void open_cleanup(void *);
|
extern void open_cleanup(void *);
|
||||||
@ -262,7 +262,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
extern void opendir_cleanup(void *);
|
extern void opendir_cleanup(void *);
|
||||||
extern void sigint_cleanup(void *);
|
extern void sigint_cleanup(void *);
|
||||||
extern void sigprocmask_cleanup(void *);
|
extern void sigprocmask_cleanup(void *);
|
||||||
@@ -221,7 +223,7 @@ extern struct Hist *enthist (int, str
|
@@ -220,7 +222,7 @@ extern struct Hist *enthist (int, str
|
||||||
extern void savehist (struct wordent *, int);
|
extern void savehist (struct wordent *, int);
|
||||||
extern char *fmthist (int, ptr_t);
|
extern char *fmthist (int, ptr_t);
|
||||||
extern void rechist (Char *, int);
|
extern void rechist (Char *, int);
|
||||||
@ -272,8 +272,8 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
extern void sethistory (int);
|
extern void sethistory (int);
|
||||||
|
|
||||||
--- sh.dol.c
|
--- sh.dol.c
|
||||||
+++ sh.dol.c 2016-11-25 08:03:43.571176209 +0000
|
+++ sh.dol.c 2019-05-09 08:16:41.673852638 +0000
|
||||||
@@ -1120,6 +1120,6 @@ again:
|
@@ -1117,6 +1117,6 @@ again:
|
||||||
*obp = 0;
|
*obp = 0;
|
||||||
tmp = short2str(obuf);
|
tmp = short2str(obuf);
|
||||||
(void) xwrite(0, tmp, strlen (tmp));
|
(void) xwrite(0, tmp, strlen (tmp));
|
||||||
@ -282,8 +282,8 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
cleanup_until(&inheredoc);
|
cleanup_until(&inheredoc);
|
||||||
}
|
}
|
||||||
--- sh.err.c
|
--- sh.err.c
|
||||||
+++ sh.err.c 2016-11-25 08:03:43.571176209 +0000
|
+++ sh.err.c 2019-05-09 08:16:41.677852563 +0000
|
||||||
@@ -514,6 +514,22 @@ open_cleanup(void *xptr)
|
@@ -511,6 +511,22 @@ open_cleanup(void *xptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -307,8 +307,8 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
{
|
{
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
--- sh.h
|
--- sh.h
|
||||||
+++ sh.h 2016-11-25 08:03:43.571176209 +0000
|
+++ sh.h 2019-05-09 08:16:41.677852563 +0000
|
||||||
@@ -50,6 +50,24 @@
|
@@ -49,6 +49,24 @@
|
||||||
# include <inttypes.h>
|
# include <inttypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -334,9 +334,9 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
typedef unsigned long intptr_t;
|
typedef unsigned long intptr_t;
|
||||||
#endif
|
#endif
|
||||||
--- sh.hist.c
|
--- sh.hist.c
|
||||||
+++ sh.hist.c 2016-11-25 08:03:43.571176209 +0000
|
+++ sh.hist.c 2019-05-09 08:36:00.679789483 +0000
|
||||||
@@ -36,6 +36,8 @@ RCSID("$tcsh: sh.hist.c,v 3.61 2015/06/0
|
@@ -32,6 +32,8 @@
|
||||||
|
#include "sh.h"
|
||||||
#include <stdio.h> /* for rename(2), grr. */
|
#include <stdio.h> /* for rename(2), grr. */
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
+#include <unistd.h>
|
+#include <unistd.h>
|
||||||
@ -344,7 +344,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
#include "tc.h"
|
#include "tc.h"
|
||||||
#include "dotlock.h"
|
#include "dotlock.h"
|
||||||
|
|
||||||
@@ -46,14 +48,6 @@ Char HistLit = 0;
|
@@ -42,14 +44,6 @@ Char HistLit = 0;
|
||||||
static int heq (const struct wordent *, const struct wordent *);
|
static int heq (const struct wordent *, const struct wordent *);
|
||||||
static void hfree (struct Hist *);
|
static void hfree (struct Hist *);
|
||||||
|
|
||||||
@ -359,7 +359,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
/*
|
/*
|
||||||
* C shell
|
* C shell
|
||||||
*/
|
*/
|
||||||
@@ -145,13 +139,13 @@ discardExcess(int hlen)
|
@@ -141,13 +135,13 @@ discardExcess(int hlen)
|
||||||
void
|
void
|
||||||
savehist(
|
savehist(
|
||||||
struct wordent *sp,
|
struct wordent *sp,
|
||||||
@ -375,7 +375,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
discardExcess(histlen);
|
discardExcess(histlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -923,7 +917,7 @@ enthist(
|
@@ -919,7 +913,7 @@ enthist(
|
||||||
int event, /* newly incremented global eventno */
|
int event, /* newly incremented global eventno */
|
||||||
struct wordent *lp,
|
struct wordent *lp,
|
||||||
int docopy,
|
int docopy,
|
||||||
@ -384,7 +384,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
int hlen) /* -1 if unknown */
|
int hlen) /* -1 if unknown */
|
||||||
{
|
{
|
||||||
struct Hist *p = NULL, *pp = &Histlist, *pTime = NULL;
|
struct Hist *p = NULL, *pp = &Histlist, *pTime = NULL;
|
||||||
@@ -943,7 +937,7 @@ enthist(
|
@@ -939,7 +933,7 @@ enthist(
|
||||||
Htime = p->Htime;
|
Htime = p->Htime;
|
||||||
/* If we are merging, and the old entry is at the place we want
|
/* If we are merging, and the old entry is at the place we want
|
||||||
* to insert the new entry, then remember the place. */
|
* to insert the new entry, then remember the place. */
|
||||||
@ -393,7 +393,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
pTime = p->Hprev;
|
pTime = p->Hprev;
|
||||||
if (!fastMergeErase)
|
if (!fastMergeErase)
|
||||||
renumberHist(p); /* Reset Href of subsequent entries */
|
renumberHist(p); /* Reset Href of subsequent entries */
|
||||||
@@ -1002,7 +996,7 @@ enthist(
|
@@ -998,7 +992,7 @@ enthist(
|
||||||
/* The head of history list is the default insertion point.
|
/* The head of history list is the default insertion point.
|
||||||
If merging, advance insertion point, in pp, according to Htime. */
|
If merging, advance insertion point, in pp, according to Htime. */
|
||||||
/* XXX -- In histdup=all, Htime values can be non-monotonic. */
|
/* XXX -- In histdup=all, Htime values can be non-monotonic. */
|
||||||
@ -402,7 +402,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
pp = mergeInsertionPoint(np, pTime);
|
pp = mergeInsertionPoint(np, pTime);
|
||||||
for (p = pp->Hnext; p && p->Htime == np->Htime; pp = p, p = p->Hnext) {
|
for (p = pp->Hnext; p && p->Htime == np->Htime; pp = p, p = p->Hnext) {
|
||||||
if (heq(&p->Hlex, &np->Hlex)) {
|
if (heq(&p->Hlex, &np->Hlex)) {
|
||||||
@@ -1041,11 +1035,11 @@ hfree(struct Hist *hp)
|
@@ -1037,11 +1031,11 @@ hfree(struct Hist *hp)
|
||||||
}
|
}
|
||||||
|
|
||||||
PG_STATIC void
|
PG_STATIC void
|
||||||
@ -416,7 +416,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
int old_output_raw;
|
int old_output_raw;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1057,7 +1051,7 @@ phist(struct Hist *hp, int hflg)
|
@@ -1053,7 +1047,7 @@ phist(struct Hist *hp, int hflg)
|
||||||
old_output_raw = output_raw;
|
old_output_raw = output_raw;
|
||||||
output_raw = 1;
|
output_raw = 1;
|
||||||
cleanup_push(&old_output_raw, output_raw_restore);
|
cleanup_push(&old_output_raw, output_raw_restore);
|
||||||
@ -425,7 +425,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
/*
|
/*
|
||||||
* Make file entry with history time in format:
|
* Make file entry with history time in format:
|
||||||
* "+NNNNNNNNNN" (10 digits, left padded with ascii '0')
|
* "+NNNNNNNNNN" (10 digits, left padded with ascii '0')
|
||||||
@@ -1088,7 +1082,7 @@ phist(struct Hist *hp, int hflg)
|
@@ -1084,7 +1078,7 @@ phist(struct Hist *hp, int hflg)
|
||||||
}
|
}
|
||||||
|
|
||||||
PG_STATIC void
|
PG_STATIC void
|
||||||
@ -434,7 +434,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
{
|
{
|
||||||
struct Hist *hp;
|
struct Hist *hp;
|
||||||
if (setintr) {
|
if (setintr) {
|
||||||
@@ -1097,7 +1091,7 @@ dophist(int n, int hflg)
|
@@ -1093,7 +1087,7 @@ dophist(int n, int hflg)
|
||||||
pintr_push_enable(&old_pintr_disabled);
|
pintr_push_enable(&old_pintr_disabled);
|
||||||
cleanup_until(&old_pintr_disabled);
|
cleanup_until(&old_pintr_disabled);
|
||||||
}
|
}
|
||||||
@ -443,7 +443,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
/* Since the history list is stored most recent first, non-reversing
|
/* Since the history list is stored most recent first, non-reversing
|
||||||
* print needs to print (backwards) up the list. */
|
* print needs to print (backwards) up the list. */
|
||||||
if ((unsigned)n >= histCount)
|
if ((unsigned)n >= histCount)
|
||||||
@@ -1111,10 +1105,10 @@ dophist(int n, int hflg)
|
@@ -1107,10 +1101,10 @@ dophist(int n, int hflg)
|
||||||
if (hp == NULL)
|
if (hp == NULL)
|
||||||
return; /* nothing to print */
|
return; /* nothing to print */
|
||||||
for (; hp != &Histlist; hp = hp->Hprev)
|
for (; hp != &Histlist; hp = hp->Hprev)
|
||||||
@ -456,7 +456,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1122,7 +1116,7 @@ dophist(int n, int hflg)
|
@@ -1118,7 +1112,7 @@ dophist(int n, int hflg)
|
||||||
void
|
void
|
||||||
dohist(Char **vp, struct command *c)
|
dohist(Char **vp, struct command *c)
|
||||||
{
|
{
|
||||||
@ -465,7 +465,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
USE(c);
|
USE(c);
|
||||||
if (getn(varval(STRhistory)) == 0)
|
if (getn(varval(STRhistory)) == 0)
|
||||||
@@ -1133,40 +1127,40 @@ dohist(Char **vp, struct command *c)
|
@@ -1129,40 +1123,40 @@ dohist(Char **vp, struct command *c)
|
||||||
while (*++vp2)
|
while (*++vp2)
|
||||||
switch (*vp2) {
|
switch (*vp2) {
|
||||||
case 'c':
|
case 'c':
|
||||||
@ -517,7 +517,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
rechist(*vp, 1);
|
rechist(*vp, 1);
|
||||||
else {
|
else {
|
||||||
if (*vp)
|
if (*vp)
|
||||||
@@ -1174,7 +1168,7 @@ dohist(Char **vp, struct command *c)
|
@@ -1170,7 +1164,7 @@ dohist(Char **vp, struct command *c)
|
||||||
else {
|
else {
|
||||||
n = getn(varval(STRhistory));
|
n = getn(varval(STRhistory));
|
||||||
}
|
}
|
||||||
@ -526,7 +526,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1222,10 +1216,9 @@ dotlock_cleanup(void* lockpath)
|
@@ -1218,10 +1212,9 @@ dotlock_cleanup(void* lockpath)
|
||||||
void
|
void
|
||||||
rechist(Char *fname, int ref)
|
rechist(Char *fname, int ref)
|
||||||
{
|
{
|
||||||
@ -539,7 +539,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
static Char *dumphist[] = {STRhistory, STRmhT, 0, 0};
|
static Char *dumphist[] = {STRhistory, STRmhT, 0, 0};
|
||||||
|
|
||||||
@@ -1294,46 +1287,49 @@ rechist(Char *fname, int ref)
|
@@ -1290,50 +1283,49 @@ rechist(Char *fname, int ref)
|
||||||
cleanup_push(lockpath, dotlock_cleanup);
|
cleanup_push(lockpath, dotlock_cleanup);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -593,7 +593,11 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
+ SHOUT = ftmp;
|
+ SHOUT = ftmp;
|
||||||
+ }
|
+ }
|
||||||
didfds = oldidfds;
|
didfds = oldidfds;
|
||||||
|
-#ifndef WINNT_NATIVE
|
||||||
- (void)rename(path, short2str(fname));
|
- (void)rename(path, short2str(fname));
|
||||||
|
-#else
|
||||||
|
- (void)ReplaceFile( short2str(fname),path,NULL,0,NULL,NULL);
|
||||||
|
-#endif
|
||||||
cleanup_until(fname);
|
cleanup_until(fname);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -611,7 +615,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
if (fname != NULL)
|
if (fname != NULL)
|
||||||
loadhist_cmd[2] = fname;
|
loadhist_cmd[2] = fname;
|
||||||
@@ -1342,17 +1338,19 @@ loadhist(Char *fname, int mflg)
|
@@ -1342,17 +1334,19 @@ loadhist(Char *fname, int mflg)
|
||||||
else
|
else
|
||||||
loadhist_cmd[2] = STRtildothist;
|
loadhist_cmd[2] = STRtildothist;
|
||||||
|
|
||||||
@ -636,8 +640,8 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
|
|
||||||
void
|
void
|
||||||
--- sh.lex.c
|
--- sh.lex.c
|
||||||
+++ sh.lex.c 2016-11-25 08:03:43.571176209 +0000
|
+++ sh.lex.c 2019-05-09 08:16:41.677852563 +0000
|
||||||
@@ -1602,7 +1602,7 @@ wide_read(int fildes, Char *buf, size_t
|
@@ -1608,7 +1608,7 @@ wide_read(int fildes, Char *buf, size_t
|
||||||
/* Throwing away possible partial multibyte characters on error if the
|
/* Throwing away possible partial multibyte characters on error if the
|
||||||
stream is not seekable */
|
stream is not seekable */
|
||||||
err = errno;
|
err = errno;
|
||||||
@ -646,7 +650,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
errno = err;
|
errno = err;
|
||||||
return res != 0 ? res : r;
|
return res != 0 ? res : r;
|
||||||
}
|
}
|
||||||
@@ -1617,7 +1617,7 @@ bgetc(void)
|
@@ -1623,7 +1623,7 @@ bgetc(void)
|
||||||
if (cantell) {
|
if (cantell) {
|
||||||
if (fseekp < fbobp || fseekp > feobp) {
|
if (fseekp < fbobp || fseekp > feobp) {
|
||||||
fbobp = feobp = fseekp;
|
fbobp = feobp = fseekp;
|
||||||
@ -655,7 +659,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
}
|
}
|
||||||
if (fseekp == feobp) {
|
if (fseekp == feobp) {
|
||||||
#ifdef WIDE_STRINGS
|
#ifdef WIDE_STRINGS
|
||||||
@@ -1821,7 +1821,7 @@ btell(struct Ain *l)
|
@@ -1827,7 +1827,7 @@ btell(struct Ain *l)
|
||||||
void
|
void
|
||||||
btoeof(void)
|
btoeof(void)
|
||||||
{
|
{
|
||||||
@ -664,7 +668,7 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
aret = TCSH_F_SEEK;
|
aret = TCSH_F_SEEK;
|
||||||
fseekp = feobp;
|
fseekp = feobp;
|
||||||
alvec = NULL;
|
alvec = NULL;
|
||||||
@@ -1839,7 +1839,7 @@ settell(void)
|
@@ -1845,7 +1845,7 @@ settell(void)
|
||||||
cantell = 0;
|
cantell = 0;
|
||||||
if (arginp || onelflg || intty)
|
if (arginp || onelflg || intty)
|
||||||
return;
|
return;
|
||||||
@ -674,8 +678,8 @@ Changes by Fridolin Pokorny <fpokorny@redhat.com>
|
|||||||
fbuf = xcalloc(2, sizeof(Char **));
|
fbuf = xcalloc(2, sizeof(Char **));
|
||||||
fblocks = 1;
|
fblocks = 1;
|
||||||
--- sh.sem.c
|
--- sh.sem.c
|
||||||
+++ sh.sem.c 2016-11-25 08:03:43.571176209 +0000
|
+++ sh.sem.c 2019-05-09 08:16:41.677852563 +0000
|
||||||
@@ -909,7 +909,7 @@ doio(struct command *t, int *pipein, int
|
@@ -905,7 +905,7 @@ doio(struct command *t, int *pipein, int
|
||||||
fd = xopen(tmp, O_WRONLY|O_APPEND|O_LARGEFILE);
|
fd = xopen(tmp, O_WRONLY|O_APPEND|O_LARGEFILE);
|
||||||
#else /* !O_APPEND */
|
#else /* !O_APPEND */
|
||||||
fd = xopen(tmp, O_WRONLY|O_LARGEFILE);
|
fd = xopen(tmp, O_WRONLY|O_LARGEFILE);
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
--- sh.hist.c
|
--- sh.hist.c
|
||||||
+++ sh.hist.c 2015-05-05 07:16:26.382084939 +0000
|
+++ sh.hist.c 2015-05-05 07:16:26.382084939 +0000
|
||||||
@@ -103,7 +103,7 @@ hremove(struct Hist *hp)
|
@@ -99,7 +99,7 @@ hremove(struct Hist *hp)
|
||||||
|
|
||||||
/* Prune length of history list to specified size by history variable. */
|
/* Prune length of history list to specified size by history variable. */
|
||||||
PG_STATIC void
|
PG_STATIC void
|
||||||
@ -13,7 +13,7 @@
|
|||||||
{
|
{
|
||||||
struct Hist *hp, *np;
|
struct Hist *hp, *np;
|
||||||
if (histTail == NULL) {
|
if (histTail == NULL) {
|
||||||
@@ -114,7 +114,7 @@ discardExcess(int hlen)
|
@@ -110,7 +110,7 @@ discardExcess(int hlen)
|
||||||
* the list is still too long scan the whole list as before. But only do a
|
* the list is still too long scan the whole list as before. But only do a
|
||||||
* full scan if the list is more than 6% (1/16th) too long. */
|
* full scan if the list is more than 6% (1/16th) too long. */
|
||||||
while (histCount > (unsigned)hlen && (np = Histlist.Hnext)) {
|
while (histCount > (unsigned)hlen && (np = Histlist.Hnext)) {
|
||||||
@ -22,7 +22,7 @@
|
|||||||
hremove(np), hfree(np);
|
hremove(np), hfree(np);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
@@ -129,7 +129,7 @@ discardExcess(int hlen)
|
@@ -125,7 +125,7 @@ discardExcess(int hlen)
|
||||||
return; /* don't bother doing the full scan */
|
return; /* don't bother doing the full scan */
|
||||||
for (hp = &Histlist; histCount > (unsigned)hlen &&
|
for (hp = &Histlist; histCount > (unsigned)hlen &&
|
||||||
(np = hp->Hnext) != NULL;)
|
(np = hp->Hnext) != NULL;)
|
||||||
@ -31,7 +31,7 @@
|
|||||||
hremove(np), hfree(np);
|
hremove(np), hfree(np);
|
||||||
else
|
else
|
||||||
hp = np;
|
hp = np;
|
||||||
@@ -146,7 +146,7 @@ savehist(
|
@@ -142,7 +142,7 @@ savehist(
|
||||||
return;
|
return;
|
||||||
if (sp)
|
if (sp)
|
||||||
(void) enthist(++eventno, sp, 1, flg, histlen);
|
(void) enthist(++eventno, sp, 1, flg, histlen);
|
||||||
@ -40,7 +40,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define USE_JENKINS_HASH 1
|
#define USE_JENKINS_HASH 1
|
||||||
@@ -1357,5 +1357,16 @@ void
|
@@ -1353,5 +1353,16 @@ void
|
||||||
sethistory(int n)
|
sethistory(int n)
|
||||||
{
|
{
|
||||||
histlen = n;
|
histlen = n;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
--- sh.c
|
--- sh.c
|
||||||
+++ sh.c 2016-11-25 08:05:00.501610199 +0000
|
+++ sh.c 2016-11-25 08:05:00.501610199 +0000
|
||||||
@@ -1540,18 +1540,18 @@ int
|
@@ -1541,18 +1541,18 @@ int
|
||||||
#endif /*WINNT_NATIVE*/
|
#endif /*WINNT_NATIVE*/
|
||||||
srcfile(const char *f, int onlyown, int flg, Char **av)
|
srcfile(const char *f, int onlyown, int flg, Char **av)
|
||||||
{
|
{
|
||||||
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
if (flg & (HIST_FILE_WRLCK | HIST_FILE_RDLCK)) {
|
if (flg & (HIST_FILE_WRLCK | HIST_FILE_RDLCK)) {
|
||||||
struct flock fl;
|
struct flock fl;
|
||||||
@@ -1561,26 +1561,35 @@ srcfile(const char *f, int onlyown, int
|
@@ -1562,26 +1562,35 @@ srcfile(const char *f, int onlyown, int
|
||||||
fl.l_start = 0;
|
fl.l_start = 0;
|
||||||
fl.l_len = 0;
|
fl.l_len = 0;
|
||||||
|
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
The code in tw_str_add() attempts to be efficient by sliding the
|
|
||||||
pointers to reallocated elements within the string list to the new
|
|
||||||
virtual address using a computed offset between buffers.
|
|
||||||
|
|
||||||
For bounds checked pointers, this produces out of bounds pointers.
|
|
||||||
Additionally, the subtraction of pointers to different objects is
|
|
||||||
undefined in C so a sufficently "smart" compiler could chose to do
|
|
||||||
anything here since in knows the objects are different.
|
|
||||||
|
|
||||||
We need this change on our research platform to avoid crashes in tab
|
|
||||||
completion.
|
|
||||||
|
|
||||||
-- Brooks
|
|
||||||
|
|
||||||
commit 85489fafb8fd908ba307df0c774e1706c19cd4b8
|
|
||||||
Author: Brooks Davis <brooks@one-eyed-alien.net>
|
|
||||||
Date: Wed Dec 7 01:04:14 2016 +0000
|
|
||||||
|
|
||||||
Fix a pointer provenance error in list extension.
|
|
||||||
|
|
||||||
When updating pointers to a buffer of linked list elements, derive
|
|
||||||
the new pointers from the new buffer rather than updating the old pointers
|
|
||||||
to the new virtual memory address of the buffer (resulting in out of bounds
|
|
||||||
values).
|
|
||||||
|
|
||||||
---
|
|
||||||
tw.init.c | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- tw.init.c
|
|
||||||
+++ tw.init.c 2016-12-07 15:27:20.024397004 +0000
|
|
||||||
@@ -125,9 +125,8 @@ tw_str_add(stringlist_t *sl, size_t len)
|
|
||||||
sl->buff = xrealloc(sl->buff, sl->tbuff * sizeof(Char));
|
|
||||||
/* Re-thread the new pointer list, if changed */
|
|
||||||
if (ptr != NULL && ptr != sl->buff) {
|
|
||||||
- intptr_t offs = sl->buff - ptr;
|
|
||||||
for (i = 0; i < sl->nlist; i++)
|
|
||||||
- sl->list[i] += offs;
|
|
||||||
+ sl->list[i] = sl->buff + (sl->list[i] - ptr);
|
|
||||||
}
|
|
||||||
disabled_cleanup(&pintr_disabled);
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
From 766c095e4c8c57aea196a1325e395f5d6162cdce Mon Sep 17 00:00:00 2001
|
|
||||||
From: "David Kaspar [Dee'Kej]" <dkaspar@redhat.com>
|
|
||||||
Date: Mon, 28 Nov 2016 17:48:29 +0100
|
|
||||||
Subject: [PATCH] Regression of 'rm *' when 'rmstar' is set fixed
|
|
||||||
|
|
||||||
This regression was introduced by commit: 858a705a79a5389
|
|
||||||
|
|
||||||
Signed-off-by: David Kaspar [Dee'Kej] <dkaspar@redhat.com>
|
|
||||||
---
|
|
||||||
sh.func.c | 7 ++++---
|
|
||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sh.func.c b/sh.func.c
|
|
||||||
index a866076..b0dfbc9 100644
|
|
||||||
--- a/sh.func.c
|
|
||||||
+++ b/sh.func.c
|
|
||||||
@@ -2734,16 +2734,17 @@ nlsclose(void)
|
|
||||||
int
|
|
||||||
getYN(const char *prompt)
|
|
||||||
{
|
|
||||||
- int doit, c;
|
|
||||||
+ int doit;
|
|
||||||
+ char c;
|
|
||||||
xprintf("%s", prompt);
|
|
||||||
flush();
|
|
||||||
- (void) force_read(SHIN, &c, 1);
|
|
||||||
+ (void) force_read(SHIN, &c, sizeof(c));
|
|
||||||
/*
|
|
||||||
* Perhaps we should use the yesexpr from the
|
|
||||||
* actual locale
|
|
||||||
*/
|
|
||||||
doit = (strchr(CGETS(22, 14, "Yy"), c) != NULL);
|
|
||||||
- while (c != '\n' && force_read(SHIN, &c, 1) == 1)
|
|
||||||
+ while (c != '\n' && force_read(SHIN, &c, sizeof(c)) == 1)
|
|
||||||
continue;
|
|
||||||
return doit;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.7.4
|
|
@ -1,32 +0,0 @@
|
|||||||
From dd0f2cbde7ed7ccbcc420613992d6876302b8b0b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Werner Fink <werner@suse.de>
|
|
||||||
Date: Fri, 28 Apr 2017 09:21:18 +0200
|
|
||||||
Subject: [PATCH] Do not convert current used control bytes into wide characters
|
|
||||||
|
|
||||||
Signed-off-by: Werner Fink <werner@suse.de>
|
|
||||||
---
|
|
||||||
ed.inputl.c | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- ed.inputl.c
|
|
||||||
+++ ed.inputl.c 2017-04-28 07:12:15.777368417 +0000
|
|
||||||
@@ -699,7 +699,7 @@ GetNextCommand(KEYCMD *cmdnum, Char *ch)
|
|
||||||
/* XXX: This needs to be fixed so that we don't just truncate
|
|
||||||
* the character, we unquote it.
|
|
||||||
*/
|
|
||||||
- if (*ch < NT_NUM_KEYS)
|
|
||||||
+ if (*ch > 0 && *ch < NT_NUM_KEYS)
|
|
||||||
cmd = CurrentKeyMap[*ch];
|
|
||||||
else
|
|
||||||
#ifdef WINNT_NATIVE
|
|
||||||
@@ -800,6 +800,10 @@ GetNextChar(Char *cp)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ if (cbp == 0 && *cbuf < NT_NUM_KEYS && CurrentKeyMap[(unsigned char)*cbuf] == F_XKEY) {
|
|
||||||
+ *cp = (unsigned char)*cbuf;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
cbp++;
|
|
||||||
if (normal_mbtowc(cp, cbuf, cbp) == -1) {
|
|
||||||
reset_mbtowc();
|
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
--- sh.hist.c
|
--- sh.hist.c
|
||||||
+++ sh.hist.c 2017-07-19 10:01:20.795354927 +0000
|
+++ sh.hist.c 2017-07-19 10:01:20.795354927 +0000
|
||||||
@@ -1278,6 +1278,11 @@ rechist(Char *fname, int ref)
|
@@ -1274,6 +1274,11 @@ rechist(Char *fname, int ref)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (merge) {
|
if (merge) {
|
||||||
@ -16,7 +16,7 @@
|
|||||||
if (lock) {
|
if (lock) {
|
||||||
#ifndef WINNT_NATIVE
|
#ifndef WINNT_NATIVE
|
||||||
char *lockpath = strsave(short2str(fname));
|
char *lockpath = strsave(short2str(fname));
|
||||||
@@ -1287,6 +1292,7 @@ rechist(Char *fname, int ref)
|
@@ -1283,6 +1288,7 @@ rechist(Char *fname, int ref)
|
||||||
cleanup_push(lockpath, dotlock_cleanup);
|
cleanup_push(lockpath, dotlock_cleanup);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
https://bugs.astron.com/view.php?id=74#c3238
|
|
||||||
|
|
||||||
Avoid trouble with e.g.
|
|
||||||
|
|
||||||
alias postcmd false
|
|
||||||
set counter=1
|
|
||||||
while ($counter > )
|
|
||||||
@ counter--
|
|
||||||
echo $counter
|
|
||||||
end
|
|
||||||
|
|
||||||
and similar scriptlets, maybe there is a better solution to
|
|
||||||
protect dowhile(), nevertheless this works.
|
|
||||||
|
|
||||||
---
|
|
||||||
tcsh-6.20.00/sh.c | 13 +++++++++++--
|
|
||||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- tcsh-6.20.00/sh.c 2017-07-19 12:29:15.512471750 +0200
|
|
||||||
+++ tcsh-6.20.00/sh.c 2019-04-08 13:35:32.462771640 +0200
|
|
||||||
@@ -2028,6 +2028,7 @@ process(int catch)
|
|
||||||
getexit(osetexit);
|
|
||||||
omark = cleanup_push_mark();
|
|
||||||
for (;;) {
|
|
||||||
+ const struct wordent *p;
|
|
||||||
struct command *t;
|
|
||||||
int hadhist, old_pintr_disabled;
|
|
||||||
|
|
||||||
@@ -2178,7 +2179,9 @@ process(int catch)
|
|
||||||
/*
|
|
||||||
* Parse the words of the input into a parse tree.
|
|
||||||
*/
|
|
||||||
- t = syntax(paraml.next, ¶ml, 0);
|
|
||||||
+ p = paraml.next;
|
|
||||||
+ t = syntax(p, ¶ml, 0);
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* We cannot cleanup push here, because cd /blah; echo foo
|
|
||||||
* would rewind t on the chdir error, and free the rest of the command
|
|
||||||
@@ -2188,7 +2191,13 @@ process(int catch)
|
|
||||||
stderror(ERR_OLD);
|
|
||||||
}
|
|
||||||
|
|
||||||
- postcmd();
|
|
||||||
+ /*
|
|
||||||
+ * The potential aliasrun() might destroy the parse tree,
|
|
||||||
+ * that is that the dowhile() would be never reached again.
|
|
||||||
+ */
|
|
||||||
+ if (srchx(p->word) != TC_WHILE)
|
|
||||||
+ postcmd();
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Execute the parse tree From: Michael Schroeder
|
|
||||||
* <mlschroe@immd4.informatik.uni-erlangen.de> was execute(t, tpgrp);
|
|
277
tcsh-6.20.00.dif
277
tcsh-6.20.00.dif
@ -1,277 +0,0 @@
|
|||||||
---
|
|
||||||
config/linux | 10 ++++++++++
|
|
||||||
config_f.h | 11 ++++++++---
|
|
||||||
configure | 2 +-
|
|
||||||
configure.ac | 2 +-
|
|
||||||
glob.h | 3 ++-
|
|
||||||
pathnames.h | 2 +-
|
|
||||||
sh.c | 3 +++
|
|
||||||
tc.alloc.c | 10 ++++++----
|
|
||||||
tc.func.c | 8 ++++++--
|
|
||||||
tc.str.c | 2 +-
|
|
||||||
tc.who.c | 3 +++
|
|
||||||
tcsh.man | 2 +-
|
|
||||||
tests/lexical.at | 6 +++---
|
|
||||||
tw.h | 4 ++++
|
|
||||||
14 files changed, 50 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
--- config/linux
|
|
||||||
+++ config/linux 2016-11-25 09:07:12.893851835 +0000
|
|
||||||
@@ -92,6 +92,9 @@
|
|
||||||
#ifndef _SVID_SOURCE
|
|
||||||
# define _SVID_SOURCE
|
|
||||||
#endif
|
|
||||||
+#ifndef _DEFAULT_SOURCE
|
|
||||||
+# define _DEFAULT_SOURCE
|
|
||||||
+#endif
|
|
||||||
#ifndef _POSIX_SOURCE
|
|
||||||
# define _POSIX_SOURCE
|
|
||||||
#endif
|
|
||||||
@@ -132,4 +135,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 2016-11-25 08:18:00.925719793 +0000
|
|
||||||
@@ -64,7 +64,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
|
|
||||||
@@ -158,7 +163,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 ?
|
|
||||||
@@ -181,7 +186,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 2016-11-25 08:18:00.925719793 +0000
|
|
||||||
@@ -4284,7 +4284,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.ac
|
|
||||||
+++ configure.ac 2016-11-25 08:20:19.034907025 +0000
|
|
||||||
@@ -317,7 +317,7 @@ esac
|
|
||||||
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_MSG_ERROR([unable to find the tgetent() function])
|
|
||||||
])
|
|
||||||
AC_SEARCH_LIBS(gethostbyname, nsl)
|
|
||||||
--- glob.h
|
|
||||||
+++ glob.h 2016-11-25 08:18:00.925719793 +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 2016-11-25 08:18:00.925719793 +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 2016-11-25 08:18:00.925719793 +0000
|
|
||||||
@@ -1371,6 +1371,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 2016-11-25 08:18:00.929719710 +0000
|
|
||||||
@@ -521,7 +521,7 @@ smalloc(size_t n)
|
|
||||||
{
|
|
||||||
ptr_t ptr;
|
|
||||||
|
|
||||||
- n = n ? n : 1;
|
|
||||||
+ n = n ? n+1 : 1;
|
|
||||||
|
|
||||||
#ifdef USE_SBRK
|
|
||||||
if (membot == NULL)
|
|
||||||
@@ -544,7 +544,7 @@ srealloc(ptr_t p, size_t n)
|
|
||||||
{
|
|
||||||
ptr_t ptr;
|
|
||||||
|
|
||||||
- n = n ? n : 1;
|
|
||||||
+ n = n ? n+1 : 1;
|
|
||||||
|
|
||||||
#ifdef USE_SBRK
|
|
||||||
if (membot == NULL)
|
|
||||||
@@ -568,7 +568,7 @@ scalloc(size_t s, size_t n)
|
|
||||||
ptr_t ptr;
|
|
||||||
|
|
||||||
n *= s;
|
|
||||||
- n = n ? n : 1;
|
|
||||||
+ n = n ? n+1 : 1;
|
|
||||||
|
|
||||||
#ifdef USE_SBRK
|
|
||||||
if (membot == NULL)
|
|
||||||
@@ -593,8 +593,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 2016-11-25 08:18:00.929719710 +0000
|
|
||||||
@@ -725,9 +725,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
|
|
||||||
|
|
||||||
@@ -1934,7 +1938,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 2016-11-25 08:18:00.929719710 +0000
|
|
||||||
@@ -350,7 +350,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 2016-11-25 08:18:00.929719710 +0000
|
|
||||||
@@ -280,6 +280,9 @@ watch_login(int force)
|
|
||||||
}
|
|
||||||
stlast = sta.st_mtime;
|
|
||||||
#if defined(HAVE_GETUTENT) || defined(HAVE_GETUTXENT)
|
|
||||||
+# 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 2016-11-25 08:21:43.605184550 +0000
|
|
||||||
@@ -603,7 +603,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.
|
|
||||||
Cursor behavior modified by \fBvimode\fR.
|
|
||||||
--- tw.h
|
|
||||||
+++ tw.h 2016-11-25 08:18:00.929719710 +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
|
|
||||||
|
|
||||||
--- tests/lexical.at
|
|
||||||
+++ tests/lexical.at 2019-04-09 07:40:10.142511227 +0000
|
|
||||||
@@ -567,10 +567,10 @@ run=3
|
|
||||||
]])
|
|
||||||
AT_DATA([uniformity_test.csh],
|
|
||||||
[[
|
|
||||||
-set SERVICE_NAME_LOG = `cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g'`
|
|
||||||
+set SERVICE_NAME_LOG = `cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g'`
|
|
||||||
echo -n "$SERVICE_NAME_LOG" > ./output1
|
|
||||||
|
|
||||||
-cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2
|
|
||||||
+cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2
|
|
||||||
|
|
||||||
diff -uprN ./output1 ./output2 >& /dev/null
|
|
||||||
|
|
||||||
@@ -587,7 +587,7 @@ AT_DATA([quoting_result_test.csh],
|
|
||||||
echo "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP\)(HOST=db\)(PORT=1521\)\)(CONNECT_DATA=(SERVER=DEDICATED\)(SERVICE_NAME=bns03\)\)\)" > ./expected_result
|
|
||||||
|
|
||||||
set string = "jdbc_url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=bns03)))"
|
|
||||||
-set SERVICE_NAME_LOG = `echo "$string" | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\)/\\\)/g'`
|
|
||||||
+set SERVICE_NAME_LOG = `echo "$string" | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\)/\\\)/g'`
|
|
||||||
|
|
||||||
echo "$SERVICE_NAME_LOG" > ./actual_result
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b89de7064ab54dac454a266cfe5d8bf66940cb5ed048d0c30674ea62e7ecef9d
|
|
||||||
size 1001696
|
|
219
tcsh-6.21.00.dif
Normal file
219
tcsh-6.21.00.dif
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
---
|
||||||
|
config/linux | 10 ++++++++++
|
||||||
|
config_f.h | 9 +++++++--
|
||||||
|
glob.h | 3 ++-
|
||||||
|
pathnames.h | 2 +-
|
||||||
|
sh.c | 3 +++
|
||||||
|
tc.alloc.c | 10 ++++++----
|
||||||
|
tc.func.c | 8 ++++++--
|
||||||
|
tc.str.c | 2 +-
|
||||||
|
tc.who.c | 3 +++
|
||||||
|
tcsh.man | 2 +-
|
||||||
|
tw.h | 4 ++++
|
||||||
|
11 files changed, 44 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
--- config/linux
|
||||||
|
+++ config/linux 2019-05-09 08:41:54.237060106 +0000
|
||||||
|
@@ -92,6 +92,9 @@
|
||||||
|
#ifndef _SVID_SOURCE
|
||||||
|
# define _SVID_SOURCE
|
||||||
|
#endif
|
||||||
|
+#ifndef _DEFAULT_SOURCE
|
||||||
|
+# define _DEFAULT_SOURCE
|
||||||
|
+#endif
|
||||||
|
#ifndef _POSIX_SOURCE
|
||||||
|
# define _POSIX_SOURCE
|
||||||
|
#endif
|
||||||
|
@@ -132,4 +135,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 2019-05-09 08:41:54.237060106 +0000
|
||||||
|
@@ -63,7 +63,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
|
||||||
|
@@ -157,7 +162,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 ?
|
||||||
|
--- glob.h
|
||||||
|
+++ glob.h 2019-05-09 08:41:54.237060106 +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 2019-05-09 08:41:54.237060106 +0000
|
||||||
|
@@ -83,7 +83,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 2019-05-09 08:41:54.237060106 +0000
|
||||||
|
@@ -1346,6 +1346,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 2019-05-09 08:41:54.237060106 +0000
|
||||||
|
@@ -518,7 +518,7 @@ smalloc(size_t n)
|
||||||
|
{
|
||||||
|
ptr_t ptr;
|
||||||
|
|
||||||
|
- n = n ? n : 1;
|
||||||
|
+ n = n ? n+1 : 1;
|
||||||
|
|
||||||
|
#ifdef USE_SBRK
|
||||||
|
if (membot == NULL)
|
||||||
|
@@ -541,7 +541,7 @@ srealloc(ptr_t p, size_t n)
|
||||||
|
{
|
||||||
|
ptr_t ptr;
|
||||||
|
|
||||||
|
- n = n ? n : 1;
|
||||||
|
+ n = n ? n+1 : 1;
|
||||||
|
|
||||||
|
#ifdef USE_SBRK
|
||||||
|
if (membot == NULL)
|
||||||
|
@@ -565,7 +565,7 @@ scalloc(size_t s, size_t n)
|
||||||
|
ptr_t ptr;
|
||||||
|
|
||||||
|
n *= s;
|
||||||
|
- n = n ? n : 1;
|
||||||
|
+ n = n ? n+1 : 1;
|
||||||
|
|
||||||
|
#ifdef USE_SBRK
|
||||||
|
if (membot == NULL)
|
||||||
|
@@ -590,8 +590,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 2019-05-09 08:41:54.237060106 +0000
|
||||||
|
@@ -721,9 +721,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
|
||||||
|
|
||||||
|
@@ -1937,7 +1941,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 2019-05-09 08:41:54.241060031 +0000
|
||||||
|
@@ -347,7 +347,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 2019-05-09 08:41:54.241060031 +0000
|
||||||
|
@@ -259,6 +259,9 @@ watch_login(int force)
|
||||||
|
}
|
||||||
|
stlast = sta.st_mtime;
|
||||||
|
#if defined(HAVE_GETUTENT) || defined(HAVE_GETUTXENT)
|
||||||
|
+# 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 2019-05-09 08:41:54.241060031 +0000
|
||||||
|
@@ -602,7 +602,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.
|
||||||
|
Cursor behavior modified by \fBvimode\fR.
|
||||||
|
--- tw.h
|
||||||
|
+++ tw.h 2019-05-09 08:41:54.241060031 +0000
|
||||||
|
@@ -32,6 +32,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.21.00.tar.gz
Normal file
3
tcsh-6.21.00.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972
|
||||||
|
size 1001909
|
@ -1,86 +0,0 @@
|
|||||||
[PATCH] Slightly less drastic closem()
|
|
||||||
Miloslav Trmac mitr at volny.cz
|
|
||||||
Thu Sep 9 19:17:10 EDT 2004
|
|
||||||
|
|
||||||
Previous message: [PATCH] Slightly less drastic closem()
|
|
||||||
Next message: Newlines in command substitution
|
|
||||||
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
|
|
||||||
|
|
||||||
On Wed, Sep 08, 2004 at 08:38:03PM -0400, Christos Zoulas wrote:
|
|
||||||
(Original mail reordered)
|
|
||||||
> Finally, I do have an old patch that makes tcsh not use closem at all,
|
|
||||||
> and adds sh like I/O redirection (plus other fd manipulations) to it,
|
|
||||||
sh-like I/O redirection could actually make the problem worse if
|
|
||||||
tcsh is using NSS after performing the redirections --- I haven't checked
|
|
||||||
whether it does.
|
|
||||||
|
|
||||||
Avoiding closem () completely is of course the "correct" fix, but I'm
|
|
||||||
afraid I won't be able to spend the time needed to do this.
|
|
||||||
|
|
||||||
|
|
||||||
> The same problem has been present for years with NIS. Same as with nss_ldap,
|
|
||||||
> NIS happily discovers that the fd it was using before is gone, and re-opens
|
|
||||||
> it.
|
|
||||||
Are other file types than sockets involved?
|
|
||||||
|
|
||||||
> I don't like the socket hack because:
|
|
||||||
>
|
|
||||||
> 1. It makes closem not close all the fds anymore.
|
|
||||||
I have already argued this should not be a problem: tcsh never
|
|
||||||
creates sockets.
|
|
||||||
|
|
||||||
> 3. the message that nss_ldap produces should be log_debug at best.
|
|
||||||
I can imagine scenarios where the message is really useful, but
|
|
||||||
I don't feel strongly about it.
|
|
||||||
|
|
||||||
> 2. The fact that nss_ldap uses sockets now is an artifact of the
|
|
||||||
> implementation. What if tomorrow it changes to use doors or named pipes?
|
|
||||||
I have never met doors in practice so I won't comment on them except by
|
|
||||||
noting that the nss_ldap in question surely won't use them.
|
|
||||||
|
|
||||||
If nss_ldap used named pipes, the "it is necessary for performance"
|
|
||||||
justification would be so weak that I would prefer patching nss_ldap
|
|
||||||
to close the pipe after each call instead of changing tcsh.
|
|
||||||
|
|
||||||
nss_ldap and tcsh are fighting over a gray area in the
|
|
||||||
system <-> application contract, so it seems reasonable to
|
|
||||||
solve it by a "compromise", restricting the behavior of both.
|
|
||||||
|
|
||||||
|
|
||||||
AFAICS, solving the general case reliably would require a lot of work
|
|
||||||
and I have no emprical evidence suggesting that this work is necessary.
|
|
||||||
|
|
||||||
To make this lobbying attempt complete :-), I'm attaching a properly
|
|
||||||
commented socket hack patch.
|
|
||||||
Mirek
|
|
||||||
---
|
|
||||||
sh.misc.c | 11 +++++++++++
|
|
||||||
1 file changed, 11 insertions(+)
|
|
||||||
|
|
||||||
--- sh.misc.c
|
|
||||||
+++ sh.misc.c 2017-06-16 07:51:59.732399828 +0000
|
|
||||||
@@ -257,6 +257,7 @@ void
|
|
||||||
closem(void)
|
|
||||||
{
|
|
||||||
int f, num_files;
|
|
||||||
+ struct stat st;
|
|
||||||
|
|
||||||
#ifdef NLS_BUGS
|
|
||||||
#ifdef NLS_CATALOGS
|
|
||||||
@@ -274,6 +275,16 @@ closem(void)
|
|
||||||
#ifdef MALLOC_TRACE
|
|
||||||
&& f != 25
|
|
||||||
#endif /* MALLOC_TRACE */
|
|
||||||
+#ifdef S_ISSOCK
|
|
||||||
+ /* NSS modules (e.g. Linux nss_ldap) might keep sockets open.
|
|
||||||
+ * If we close such a socket, both the NSS module and tcsh think
|
|
||||||
+ * they "own" the descriptor.
|
|
||||||
+ *
|
|
||||||
+ * Not closing sockets does not make the cleanup use of closem()
|
|
||||||
+ * less reliable because tcsh never creates sockets.
|
|
||||||
+ */
|
|
||||||
+ && fstat(f, &st) == 0 && !S_ISSOCK(st.st_mode)
|
|
||||||
+#endif
|
|
||||||
)
|
|
||||||
{
|
|
||||||
xclose(f);
|
|
35
tcsh.changes
35
tcsh.changes
@ -1,3 +1,38 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 9 08:50:56 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
- Update to tcsh bug fix version V6.21.00 - 20190508
|
||||||
|
*. Abort history loading on words and lines too long
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1598502
|
||||||
|
* Introduce GetCmdChar() to avoid open coding array access.
|
||||||
|
* make closem() not close sockets so as not to affect nss_ldap.
|
||||||
|
tcsh never creates sockets so that's ok (Miloslav Trmac)
|
||||||
|
* Make rmstar work with aliased rm
|
||||||
|
* convert match() from recursive to backtracking.
|
||||||
|
* Handle 8 bit characters in bindkey (Werner Fink)
|
||||||
|
* Look for tgetent in libtinfo as well (Werner Fink)
|
||||||
|
* Don't play pointer tricks that are undefined in modern c (Brooks Davis)
|
||||||
|
* Fix out of bounds read (Brooks Davis)
|
||||||
|
* Fix type of read in prompt confirmation (eg. rmstar) (David Kaspar)
|
||||||
|
* Delay arginp parsing
|
||||||
|
- Drop patches now upstream
|
||||||
|
* tcsh-6.20-ptr-update.patch
|
||||||
|
* tcsh-6.20-rmstar.patch
|
||||||
|
* tcsh-6.20.00-8bit-cmdkeys.patch
|
||||||
|
* tcsh-6.20.00-postcmd.patch
|
||||||
|
* tcsh-closem.patch
|
||||||
|
- Port patches
|
||||||
|
* tcsh-6.15.00-pipe.dif
|
||||||
|
* tcsh-6.16.00-norm-cmd.dif
|
||||||
|
* tcsh-6.17.06-dspmbyte.dif
|
||||||
|
* tcsh-6.18.03-catalogs.dif
|
||||||
|
* tcsh-6.18.03-colorls.dif
|
||||||
|
* tcsh-6.18.03-history-file-locking.patch
|
||||||
|
* tcsh-6.18.03-history-merge.dif
|
||||||
|
* tcsh-6.19.00-history-file-locking-order.patch
|
||||||
|
* tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
|
||||||
|
- Rename patch tcsh-6.20.00.dif which now becomes tcsh-6.21.00.dif
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 9 07:26:37 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
Tue Apr 9 07:26:37 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
25
tcsh.spec
25
tcsh.spec
@ -17,16 +17,16 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: tcsh
|
Name: tcsh
|
||||||
Version: 6.20.00
|
Version: 6.21.00
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The C SHell
|
Summary: The C SHell
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: System/Shells
|
Group: System/Shells
|
||||||
Url: http://www.tcsh.org/
|
Url: http://www.tcsh.org/
|
||||||
Source: ftp.astron.com:/pub/tcsh/tcsh-6.20.00.tar.gz
|
Source: ftp.astron.com:/pub/tcsh/tcsh-6.21.00.tar.gz
|
||||||
Source2: bindkey.tcsh
|
Source2: bindkey.tcsh
|
||||||
Source3: complete.tcsh
|
Source3: complete.tcsh
|
||||||
Patch0: tcsh-6.20.00.dif
|
Patch0: tcsh-6.21.00.dif
|
||||||
Patch1: tcsh-6.15.00-pipe.dif
|
Patch1: tcsh-6.15.00-pipe.dif
|
||||||
Patch2: tcsh-6.16.00-norm-cmd.dif
|
Patch2: tcsh-6.16.00-norm-cmd.dif
|
||||||
Patch4: tcsh-6.18.03-colorls.dif
|
Patch4: tcsh-6.18.03-colorls.dif
|
||||||
@ -37,18 +37,8 @@ Patch9: tcsh-6.18.03-history-file-locking.patch
|
|||||||
Patch10: tcsh-6.18.03-history-merge.dif
|
Patch10: tcsh-6.18.03-history-merge.dif
|
||||||
# PATCH-FIX-SUSE fix history file locking: first unlock then close
|
# PATCH-FIX-SUSE fix history file locking: first unlock then close
|
||||||
Patch11: tcsh-6.19.00-history-file-locking-order.patch
|
Patch11: tcsh-6.19.00-history-file-locking-order.patch
|
||||||
# PATCH-FIX-COMUNITY fix handling of rmstar
|
|
||||||
Patch12: tcsh-6.20-rmstar.patch
|
|
||||||
# PATCH-FIX-COMUNITY fix updating pointers to a reallocated buffer of linked list elements
|
|
||||||
Patch13: tcsh-6.20-ptr-update.patch
|
|
||||||
# PATCH-FIX-SUSE Do not convert current used control bytes into wide characters
|
|
||||||
Patch14: tcsh-6.20.00-8bit-cmdkeys.patch
|
|
||||||
# PATCH-FIX-COMMUNITY Slightly less drastic closem() -- bsc#1028864
|
|
||||||
Patch15: tcsh-closem.patch
|
|
||||||
# PATCH-FIX-SUSE Aoid dot locking as patch 9 and 11 do the job better
|
# PATCH-FIX-SUSE Aoid dot locking as patch 9 and 11 do the job better
|
||||||
Patch16: tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
|
Patch12: tcsh-6.20.00-avoid-dotlock-for-fcntl.patch
|
||||||
# PATCH-FIX-SUSE Do not destroy parse tree due set postcmd alias
|
|
||||||
Patch17: tcsh-6.20.00-postcmd.patch
|
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
@ -77,12 +67,7 @@ correction, a history mechanism, job control, and a C-like syntax.
|
|||||||
%patch9 -b .histlock
|
%patch9 -b .histlock
|
||||||
%patch10 -b .histmerg
|
%patch10 -b .histmerg
|
||||||
%patch11 -b .histlckord
|
%patch11 -b .histlckord
|
||||||
%patch12 -p1 -b .rmstar
|
%patch12 -p0 -b .nodtlck
|
||||||
%patch13 -p0 -b .ptrbuf
|
|
||||||
%patch14 -p0 -b .8bit
|
|
||||||
%patch15 -p0 -b .nss
|
|
||||||
%patch16 -p0 -b .nodtlck
|
|
||||||
%patch17 -p1 -b .postcmd
|
|
||||||
%patch0 -b .0
|
%patch0 -b .0
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
Loading…
Reference in New Issue
Block a user