summaryrefslogtreecommitdiff
path: root/shells/v7sh/files/patch-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'shells/v7sh/files/patch-test.c')
-rw-r--r--shells/v7sh/files/patch-test.c223
1 files changed, 223 insertions, 0 deletions
diff --git a/shells/v7sh/files/patch-test.c b/shells/v7sh/files/patch-test.c
new file mode 100644
index 000000000000..9451b04d627e
--- /dev/null
+++ b/shells/v7sh/files/patch-test.c
@@ -0,0 +1,223 @@
+diff -u -x CVS -x work -x core -x *.core -x #* -x *~ -x *.orig -x *.rej -I $Id.*$ -I $.+BSD.*$ test.c.orig test.c
+--- test.c.orig Wed Jun 9 01:32:25 2004
++++ test.c Sat Jun 19 18:42:25 2004
+@@ -3,24 +3,40 @@
+ * [ expression ]
+ */
+
++#if defined(SYSIII)
+ #include "defs.h"
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#define exp exp_
+-
+-INT ap, ac;
+-STRING *av;
+-
+-test(argn, com)
+- STRING com[];
+- INT argn;
+-{
+
++#undef eq
++#define eq(a,b) ((at=a)==0?0:cf(at,b)==0)
+
++LOCAL STRING nxtarg(INT);
++#define exp exp_
++LOCAL INT exp(VOID);
++LOCAL INT e1(VOID);
++LOCAL INT e2(VOID);
++LOCAL INT e3(VOID);
++LOCAL INT tio(STRING, INT);
++LOCAL INT ftype(STRING, INT);
++LOCAL INT fsizep(STRING);
++
++LOCAL CMSG bramis = "] missing";
++LOCAL CMSG argexp = "argument expected";
++LOCAL CMSG braexp = ") expected";
++
++LOCAL INT ap, ac;
++LOCAL STRING *av;
++LOCAL STRING at;
++
++
++INT test(argn, com)
++ INT argn;
++ STRING com[];
++{
+ ac = argn; av = com; ap = 1;
+ IF eq(com[0],"[")
+ THEN IF !eq(com[--ac], "]")
+- THEN failed("test", "] missing");
++ THEN failed(btest, bramis);
++ /*NOTREACHED*/
+ FI
+ FI
+ com[ac] = 0;
+@@ -28,34 +44,33 @@
+ return(exp()?0:1);
+ }
+
+-STRING nxtarg(mt) {
+-
++LOCAL STRING nxtarg(mt)
++ INT mt;
++{
+ IF ap >= ac
+ THEN IF mt
+ THEN ap++;
+ return(0);
+ FI
+- failed("test", "argument expected");
++ failed(btest, argexp);
++ /*NOTREACHED*/
+ FI
+ return(av[ap++]);
+ }
+
+-exp() {
+- INT p1;
+- STRING p2;
++LOCAL INT exp()
++{
++ INT p1;
+
+ p1 = e1();
+- p2 = nxtarg(1);
+- IF eq(p2, "-o") THEN return(p1 | exp()) FI
+- IF (p2!=0)&&!eq(p2,"]")&&!eq(p2,")")
+- THEN failed("test", synmsg);
+- FI
++ IF eq(nxtarg(1), "-o") THEN return(p1 | exp()) FI
+ ap--;
+ return(p1);
+ }
+
+-e1() {
+- INT p1;
++LOCAL INT e1()
++{
++ INT p1;
+
+ p1 = e2();
+ IF eq(nxtarg(1), "-a") THEN return(p1 & e1()) FI
+@@ -63,7 +78,8 @@
+ return(p1);
+ }
+
+-e2() {
++LOCAL INT e2()
++{
+ IF eq(nxtarg(0), "!")
+ THEN return(!e3())
+ FI
+@@ -71,26 +87,29 @@
+ return(e3());
+ }
+
+-e3() {
+- INT p1;
++LOCAL INT e3()
++{
++ INT p1;
+ REG STRING a;
+- STRING p2;
+- L_INT atol();
+- L_INT int1, int2;
++ STRING p2;
++ LONG int1, int2;
+
+ a=nxtarg(0);
+ IF eq(a, "(")
+ THEN p1 = exp();
+- IF !eq(nxtarg(0), ")") THEN failed("test",") expected") FI
++ IF !eq(nxtarg(0), ")")
++ THEN failed(btest, braexp)
++ /*NOTREACHED*/
++ FI
+ return(p1);
+ FI
+
+ p2 = nxtarg(1);
+ ap--;
+ IF !eq(p2,"=")&&!eq(p2,"!=")
+- THEN IF eq(a, "-r") THEN return(tio(nxtarg(0), 4)) FI
+- IF eq(a, "-w") THEN return(tio(nxtarg(0), 2)) FI
+- IF eq(a, "-x") THEN return(tio(nxtarg(0), 1)) FI
++ THEN IF eq(a, "-r") THEN return(tio(nxtarg(0), R_OK)) FI
++ IF eq(a, "-w") THEN return(tio(nxtarg(0), W_OK)) FI
++ IF eq(a, "-x") THEN return(tio(nxtarg(0), X_OK)) FI
+ IF eq(a, "-d") THEN return(ftype(nxtarg(0), S_IFDIR)) FI
+ IF eq(a, "-c") THEN return(ftype(nxtarg(0),S_IFCHR)) FI
+ IF eq(a, "-b") THEN return(ftype(nxtarg(0), S_IFBLK)) FI
+@@ -106,7 +125,7 @@
+ ORF eq(a, "-o")
+ THEN ap--;
+ return(isatty(1));
+- ELSE return(isatty(atol(a)));
++ ELSE return(isatty(atoi(a)));
+ FI
+ FI
+ IF eq(a, "-n") THEN return(!eq(nxtarg(0), "")) FI
+@@ -121,7 +140,12 @@
+ FI
+ IF eq(p2, "=") THEN return(eq(nxtarg(0), a)) FI
+ IF eq(p2, "!=") THEN return(!eq(nxtarg(0), a)) FI
++ IF eq(a, "-l")
++ THEN int1 = (LONG) length(p2) - 1;
++ p2 = nxtarg(0);
++ ELSE
+ int1 = atol(a);
++ FI
+ int2 = atol(nxtarg(0));
+ IF eq(p2, "-eq") THEN return(int1==int2) FI
+ IF eq(p2, "-ne") THEN return(int1!=int2) FI
+@@ -131,11 +155,13 @@
+ IF eq(p2, "-le") THEN return(int1<=int2) FI
+
+ bfailed(btest, badop, p2);
++ /*NOTREACHED*/
++ return(0); /* GCC */
+ }
+
+-tio(a, f)
+- STRING a;
+- INT f;
++LOCAL INT tio(a, f)
++ STRING a;
++ INT f;
+ {
+ IF access(a, f)==0
+ THEN return(1);
+@@ -143,11 +169,11 @@
+ FI
+ }
+
+-ftype(f,field)
+- STRING f;
+- INT field;
++LOCAL INT ftype(f,field)
++ STRING f;
++ INT field;
+ {
+- struct stat statb;
++ STATBUF statb;
+
+ IF stat(f,&statb)<0 THEN return(0) FI
+ IF (statb.st_mode&field)==field
+@@ -156,10 +182,12 @@
+ FI
+ }
+
+-fsizep(f)
+- STRING f;
++LOCAL INT fsizep(f)
++ STRING f;
+ {
+- struct stat statb;
++ STATBUF statb;
++
+ IF stat(f, &statb) <0 THEN return(0) FI
+ return(statb.st_size>0);
+ }
++#endif