Remove the now unused ARITH_* defines
[oweals/busybox.git] / shell / ash.c
index 9b3f83ef6547e6f4cf7a50c350a5a1095c0cb87b..5933b151834db179e0db6b7f9455355530ec94b8 100644 (file)
@@ -1523,32 +1523,6 @@ __lookupalias(const char *name) {
  * written implementation written by Aaron Lehmann <aaronl@vitelus.com>.
  * This is now part of libbb, so that it can be used by all the shells
  * in busybox. */
-#define ARITH_NUM 257
-#define ARITH_LPAREN 258
-#define ARITH_RPAREN 259
-#define ARITH_OR 260
-#define ARITH_AND 261
-#define ARITH_BOR 262
-#define ARITH_BXOR 263
-#define ARITH_BAND 264
-#define ARITH_EQ 265
-#define ARITH_NE 266
-#define ARITH_LT 267
-#define ARITH_GT 268
-#define ARITH_GE 269
-#define ARITH_LE 270
-#define ARITH_LSHIFT 271
-#define ARITH_RSHIFT 272
-#define ARITH_ADD 273
-#define ARITH_SUB 274
-#define ARITH_MUL 275
-#define ARITH_DIV 276
-#define ARITH_REM 277
-#define ARITH_UNARYMINUS 278
-#define ARITH_UNARYPLUS 279
-#define ARITH_NOT 280
-#define ARITH_BNOT 281
-
 static void expari (int);
 #endif
 
@@ -2508,9 +2482,7 @@ out:
  * of all the rest.)
  */
 
-static inline void
-evalpipe(n)
-       union node *n;
+static inline void evalpipe(union node *n)
 {
        struct job *jp;
        struct nodelist *lp;
@@ -3453,8 +3425,8 @@ pgetc(void)
  * PEOF may be pushed back.
  */
 
-static void
-pungetc() {
+static void pungetc(void) 
+{
        parsenleft++;
        parsenextc--;
 }
@@ -3496,8 +3468,8 @@ popallfiles(void) {
  * after a fork is done.
  */
 
-static void
-closescript() {
+static void closescript(void) 
+{
        popallfiles();
        if (parsefile->fd > 0) {
                close(parsefile->fd);
@@ -3511,9 +3483,7 @@ closescript() {
  * interrupts off.
  */
 
-static void
-setinputfd(fd, push)
-       int fd, push;
+static void setinputfd(int fd, int push)
 {
        (void) fcntl(fd, F_SETFD, FD_CLOEXEC);
        if (push) {
@@ -4471,10 +4441,7 @@ expandarg(arg, arglist, flag)
  * input string.
  */
 
-static inline char *
-evalvar(p, flag)
-       char *p;
-       int flag;
+static inline char * evalvar(char *p, int flag)
 {
        int subtype;
        int varflags;
@@ -6075,7 +6042,7 @@ static inline void putprompt(const char *s) {
 
 #ifdef ASH_ALIAS
 static int
-pgetc2()
+pgetc2(void)
 {
        int c;
        do {
@@ -6349,7 +6316,8 @@ static int fd0_redirected = 0;
 
 /* Return true if fd 0 has already been redirected at least once.  */
 static inline int
-fd0_redirected_p () {
+fd0_redirected_p (void) 
+{
        return fd0_redirected != 0;
 }
 
@@ -7294,7 +7262,7 @@ cmdputs(const char *s)
        cmdnextc = q;
 }
 
-//#define CMDTXT_TABLE
+#define CMDTXT_TABLE
 #ifdef CMDTXT_TABLE
 /*
  * To collect a lot of redundant code in cmdtxt() case statements, we
@@ -7971,8 +7939,7 @@ readcmdfile(const char *name)
 
 
 static inline char *
-find_dot_file(mybasename)
-       char *mybasename;
+find_dot_file(char *mybasename)
 {
        char *fullname;
        const char *path = pathval();
@@ -8710,8 +8677,8 @@ static void sizenodelist (const struct nodelist *);
 static struct nodelist *copynodelist (const struct nodelist *);
 static char *nodesavestr (const char *);
 
-//#define CALCSIZE_TABLE
-//#define COPYNODE_TABLE
+#define CALCSIZE_TABLE
+#define COPYNODE_TABLE
 #if defined(CALCSIZE_TABLE) || defined(COPYNODE_TABLE)
 /*
  * To collect a lot of redundant code in case statements for copynode()
@@ -10337,6 +10304,86 @@ out:
  *  have parseword (readtoken1?) handle both words and redirection.]
  */
 
+#define NEW_xxreadtoken
+#ifdef NEW_xxreadtoken
+
+static const char xxreadtoken_chars[] = "\n()&|;"; /* singles must be first! */
+static const char xxreadtoken_tokens[] = {
+       TNL, TLP, TRP,                          /* only single occurrence allowed */
+       TBACKGND, TPIPE, TSEMI,         /* if single occurrence */
+       TEOF,                                           /* corresponds to trailing nul */
+       TAND, TOR, TENDCASE,            /* if double occurrence */
+};
+
+#define xxreadtoken_doubles \
+       (sizeof(xxreadtoken_tokens) - sizeof(xxreadtoken_chars))
+#define xxreadtoken_singles \
+       (sizeof(xxreadtoken_chars) - xxreadtoken_doubles - 1)
+
+static int
+xxreadtoken() {
+       int c;
+
+       if (tokpushback) {
+               tokpushback = 0;
+               return lasttoken;
+       }
+       if (needprompt) {
+               setprompt(2);
+               needprompt = 0;
+       }
+       startlinno = plinno;
+       for (;;) {      /* until token or start of word found */
+               c = pgetc_macro();
+
+               if ((c!=' ') && (c!='\t')
+#ifdef ASH_ALIAS
+                       && (c!=PEOA)
+#endif
+                       ) {
+                       if (c=='#') {
+                               while ((c = pgetc()) != '\n' && c != PEOF);
+                               pungetc();
+                       } else if (c=='\\') {
+                               if (pgetc() != '\n') {
+                                       pungetc();
+                                       goto READTOKEN1;
+                               }
+                               startlinno = ++plinno;
+                               setprompt(doprompt ? 2 : 0);
+                       } else {
+                               const char *p
+                                       = xxreadtoken_chars + sizeof(xxreadtoken_chars) - 1;
+
+                               if (c!=PEOF) {
+                                       if (c=='\n') {
+                                               plinno++;
+                                               needprompt = doprompt;
+                                       }
+
+                                       p = strchr(xxreadtoken_chars, c);
+                                       if (p == NULL) {
+                                       READTOKEN1:
+                                               return readtoken1(c, BASESYNTAX, (char *)NULL, 0);
+                                       }
+                       
+                                       if (p-xxreadtoken_chars >= xxreadtoken_singles) {
+                                               if (pgetc() == *p) { /* double occurrence? */
+                                                       p += xxreadtoken_doubles + 1;
+                                               } else {
+                                                       pungetc();
+                                               }
+                                       }
+                               }
+
+                               return lasttoken = xxreadtoken_tokens[p-xxreadtoken_chars];
+                       }
+               }
+       }
+}
+
+
+#else
 #define RETURN(token)   return lasttoken = token
 
 static int
@@ -10408,7 +10455,7 @@ breakloop:
        return readtoken1(c, BASESYNTAX, (char *)NULL, 0);
 #undef RETURN
 }
-
+#endif
 
 
 /*
@@ -12681,7 +12728,7 @@ findvar(struct var **vpp, const char *name)
 /*
  * Copyright (c) 1999 Herbert Xu <herbert@debian.org>
  * This file contains code for the times builtin.
- * $Id: ash.c,v 1.24 2001/09/06 18:00:41 andersen Exp $
+ * $Id: ash.c,v 1.27 2001/10/19 00:08:17 andersen Exp $
  */
 static int timescmd (int argc, char **argv)
 {