summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvcrhonek <vcrhonek@fedoraproject.org>2008-09-03 11:50:36 +0000
committervcrhonek <vcrhonek@fedoraproject.org>2008-09-03 11:50:36 +0000
commit1bcd8ea591286664483d0aea2601a8729eb6b81f (patch)
tree135810739118b2cc18c12eef719ca882ff887dfb
parent5b0f4da4051be4535915052599b18b45b1c985d8 (diff)
downloadtcsh-rebase-6.19.00-1bcd8ea591286664483d0aea2601a8729eb6b81f.tar.gz
tcsh-rebase-6.19.00-1bcd8ea591286664483d0aea2601a8729eb6b81f.tar.xz
tcsh-rebase-6.19.00-1bcd8ea591286664483d0aea2601a8729eb6b81f.zip
Fix UTF-8 Japanese character is garbled in tcsh script in a certain
situation, Fix calculation order of operators description in tcsh manpage, Fix strings which begin with '0' are not recognized as octal numbers, Fix memoryuse description in tcsh manpage, Fix tcsh scripts with multiple case statement with end keywords break with error, Fix description of builtin command 'set' in tcsh manpage
-rw-r--r--tcsh-6.13.00-memoryuse.patch13
-rw-r--r--tcsh-6.14.00-octal.patch32
-rw-r--r--tcsh-6.14.00-order.patch14
-rw-r--r--tcsh-6.14.00-set.patch11
-rw-r--r--tcsh-6.14.00-syntax.patch37
-rw-r--r--tcsh-6.15.00-wide-str.patch28
-rw-r--r--tcsh.spec30
7 files changed, 164 insertions, 1 deletions
diff --git a/tcsh-6.13.00-memoryuse.patch b/tcsh-6.13.00-memoryuse.patch
new file mode 100644
index 0000000..979c477
--- /dev/null
+++ b/tcsh-6.13.00-memoryuse.patch
@@ -0,0 +1,13 @@
+diff -up tcsh-6.15.00/tcsh.man.memoryuse tcsh-6.15.00/tcsh.man
+--- tcsh-6.15.00/tcsh.man.memoryuse 2008-09-03 12:16:48.000000000 +0200
++++ tcsh-6.15.00/tcsh.man 2008-09-03 12:16:48.000000000 +0200
+@@ -2901,7 +2901,8 @@ the size of the largest core dump that w
+ .TP
+ \fImemoryuse\fR
+ the maximum amount of physical memory a process
+-may have allocated to it at a given time
++may have allocated to it at a given time (this is not implemented in the 2.6 kernel. The value is meaningless
++and changing this value will have no effect)
+ .TP
+ \fIheapsize\fR
+ the maximum amount of memory a process
diff --git a/tcsh-6.14.00-octal.patch b/tcsh-6.14.00-octal.patch
new file mode 100644
index 0000000..385843c
--- /dev/null
+++ b/tcsh-6.14.00-octal.patch
@@ -0,0 +1,32 @@
+diff -up tcsh-6.15.00/sh.set.c.octal tcsh-6.15.00/sh.set.c
+--- tcsh-6.15.00/sh.set.c.octal 2006-08-24 22:56:31.000000000 +0200
++++ tcsh-6.15.00/sh.set.c 2008-09-03 12:28:10.000000000 +0200
+@@ -525,6 +525,7 @@ getn(Char *cp)
+ {
+ int n;
+ int sign;
++ int base;
+
+ if (!cp) /* PWP: extra error checking */
+ stderror(ERR_NAME | ERR_BADNUM);
+@@ -538,9 +539,19 @@ getn(Char *cp)
+ if (!Isdigit(*cp))
+ stderror(ERR_NAME | ERR_BADNUM);
+ }
++
++ if (cp[0] == '0' && cp[1])
++ base = 8;
++ else
++ base = 10;
++
+ n = 0;
+ while (Isdigit(*cp))
+- n = n * 10 + *cp++ - '0';
++ {
++ if (base == 8 && *cp >= '8')
++ stderror(ERR_NAME | ERR_BADNUM);
++ n = n * base + *cp++ - '0';
++ }
+ if (*cp)
+ stderror(ERR_NAME | ERR_BADNUM);
+ return (sign ? -n : n);
diff --git a/tcsh-6.14.00-order.patch b/tcsh-6.14.00-order.patch
new file mode 100644
index 0000000..7bbbe8c
--- /dev/null
+++ b/tcsh-6.14.00-order.patch
@@ -0,0 +1,14 @@
+diff -up tcsh-6.15.00/tcsh.man.order tcsh-6.15.00/tcsh.man
+--- tcsh-6.15.00/tcsh.man.order 2008-09-03 12:30:44.000000000 +0200
++++ tcsh-6.15.00/tcsh.man 2008-09-03 12:30:44.000000000 +0200
+@@ -1614,7 +1614,9 @@ They include
+ .PP
+ Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+ `>=' `<' and `>', `<<' and `>>', `+' and `\-', `*' `/' and `%' being, in
+-groups, at the same level. The `==' `!=' `=~' and `!~' operators compare
++groups, at the same level. When multiple operators which have same precedence
++are used in one expression, calculation must be done from operator of right
++side. The `==' `!=' `=~' and `!~' operators compare
+ their arguments as strings; all others operate on numbers. The operators
+ `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+ glob-pattern (see \fBFilename substitution\fR) against which the left hand
diff --git a/tcsh-6.14.00-set.patch b/tcsh-6.14.00-set.patch
new file mode 100644
index 0000000..d583c3e
--- /dev/null
+++ b/tcsh-6.14.00-set.patch
@@ -0,0 +1,11 @@
+diff -up tcsh-6.15.00/tcsh.man.set tcsh-6.15.00/tcsh.man
+--- tcsh-6.15.00/tcsh.man.set 2008-09-03 11:43:55.000000000 +0200
++++ tcsh-6.15.00/tcsh.man 2008-09-03 11:43:55.000000000 +0200
+@@ -3213,7 +3213,6 @@ The fifth form sets the \fIindex\fR'th c
+ this component must already exist.
+ The sixth form lists only the names of all shell variables that are read-only.
+ The seventh form makes \fIname\fR read-only, whether or not it has a value.
+-The second form sets \fIname\fR to the null string.
+ The eighth form is the same as the third form, but
+ make \fIname\fR read-only at the same time.
+ .PD
diff --git a/tcsh-6.14.00-syntax.patch b/tcsh-6.14.00-syntax.patch
new file mode 100644
index 0000000..25e6cdf
--- /dev/null
+++ b/tcsh-6.14.00-syntax.patch
@@ -0,0 +1,37 @@
+diff -up tcsh-6.15.00/sh.func.c.syntax tcsh-6.15.00/sh.func.c
+--- tcsh-6.15.00/sh.func.c.syntax 2006-08-24 22:56:31.000000000 +0200
++++ tcsh-6.15.00/sh.func.c 2008-09-03 11:53:05.000000000 +0200
+@@ -751,8 +751,6 @@ search(int type, int level, Char *goal)
+ {
+ struct Strbuf word = Strbuf_INIT;
+ Char *cp;
+- struct whyle *wp;
+- int wlevel = 0;
+
+ Stype = type;
+ Sgoal = goal;
+@@ -791,24 +789,13 @@ search(int type, int level, Char *goal)
+
+ case TC_FOREACH:
+ case TC_WHILE:
+- wlevel++;
+ if (type == TC_BREAK)
+ level++;
+ break;
+
+ case TC_END:
+- if (type == TC_BRKSW) {
+- if (wlevel == 0) {
+- wp = whyles;
+- if (wp) {
+- whyles = wp->w_next;
+- wpfree(wp);
+- }
+- }
+- }
+ if (type == TC_BREAK)
+ level--;
+- wlevel--;
+ break;
+
+ case TC_SWITCH:
diff --git a/tcsh-6.15.00-wide-str.patch b/tcsh-6.15.00-wide-str.patch
new file mode 100644
index 0000000..05f3c08
--- /dev/null
+++ b/tcsh-6.15.00-wide-str.patch
@@ -0,0 +1,28 @@
+diff -up tcsh-6.15.00/tc.str.c_old tcsh-6.15.00/tc.str.c
+--- tcsh-6.15.00/tc.str.c_old 2008-09-03 13:08:44.000000000 +0200
++++ tcsh-6.15.00/tc.str.c 2008-09-03 13:11:32.000000000 +0200
+@@ -154,7 +154,7 @@ short2str(const Char *src)
+ {
+ static char *sdst = NULL;
+ static size_t dstsize = 0;
+- char *dst, *edst;
++ char *dst, *edst, *wdst, *wedst;
+
+ if (src == NULL)
+ return (NULL);
+@@ -171,8 +171,15 @@ short2str(const Char *src)
+ if (dst >= edst) {
+ dstsize += MALLOC_INCR;
+ sdst = xrealloc(sdst, (dstsize + MALLOC_SURPLUS) * sizeof(char));
++ wdst = dst;
++ wedst = edst;
+ edst = &sdst[dstsize];
+ dst = &edst[-MALLOC_INCR];
++ while (wdst > wedst) {
++ dst++;
++ wdst--;
++ }
++
+ }
+ }
+ *dst = 0;
diff --git a/tcsh.spec b/tcsh.spec
index e4f9864..60479be 100644
--- a/tcsh.spec
+++ b/tcsh.spec
@@ -3,7 +3,7 @@
Summary: An enhanced version of csh, the C shell
Name: tcsh
Version: 6.15
-Release: 5%{?dist}
+Release: 6%{?dist}
License: BSD with advertising
Group: System Environment/Shells
Source: ftp://ftp.astron.com/pub/tcsh/tcsh-%{version}.00.tar.gz
@@ -13,6 +13,12 @@ Patch3: tcsh-6.14.00-unprintable.patch
Patch4: tcsh-6.15.00-hist-sub.patch
Patch5: tcsh-6.15.00-var-sub.patch
Patch6: tcsh-6.15.00-ca-color.patch
+Patch7: tcsh-6.14.00-set.patch
+Patch8: tcsh-6.14.00-syntax.patch
+Patch9: tcsh-6.13.00-memoryuse.patch
+Patch10: tcsh-6.14.00-octal.patch
+Patch11: tcsh-6.14.00-order.patch
+Patch12: tcsh-6.15.00-wide-str.patch
Provides: csh = %{version}
Requires(post): grep
Requires(postun): coreutils, grep
@@ -36,6 +42,12 @@ like syntax.
%patch4 -p1 -b .hist-sub
%patch5 -p1 -b .var-sub
%patch6 -p1 -b .ca-color
+%patch7 -p1 -b .set
+%patch8 -p1 -b .syntax
+%patch9 -p1 -b .memoryuse
+%patch10 -p1 -b .octal
+%patch11 -p1 -b .order
+%patch12 -p1 -b .wide-str
%build
# For tcsh-6.14.00-tinfo.patch
@@ -103,6 +115,22 @@ fi
%{_mandir}/*/*
%changelog
+* Wed Sep 3 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.15-6
+- Fix UTF-8 Japanese character is garbled in tcsh script in
+ a certain situation
+ Related: #453785
+- Fix calculation order of operators description in tcsh manpage
+ Related: #442536
+- Fix strings which begin with '0' are not recognized as octal numbers
+ Related: #438109
+- Fix memoryuse description in tcsh manpage
+ Related: #437095
+- Fix tcsh scripts with multiple case statement with end keywords
+ break with error
+ Related: #436956
+- Fix description of builtin command 'set' in tcsh manpage
+ Related: #430459
+
* Fri Aug 29 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.15-5
- Rediffed all patches to work with patch --fuzz=0
- Let tcsh know 'ca' colorls variable