ash: s/int/smallint/. -60 bytes.
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 21 Sep 2007 18:06:20 +0000 (18:06 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 21 Sep 2007 18:06:20 +0000 (18:06 -0000)
shell/ash.c

index ec3e176181bc0df394905ff818a3c64a6f795df7..167232c332756fc30f5792bde5607f671301f8a1 100644 (file)
@@ -2152,8 +2152,8 @@ padvance(const char **path, const char *name)
 
 /* ============ Prompt */
 
-static int doprompt;                   /* if set, prompt the user */
-static int needprompt;                 /* true if interactive and at start of line */
+static smallint doprompt;                   /* if set, prompt the user */
+static smallint needprompt;                 /* true if interactive and at start of line */
 
 #if ENABLE_FEATURE_EDITING
 static line_input_t *line_input_state;
@@ -2458,7 +2458,7 @@ pwdcmd(int argc, char **argv)
 
 /* ============ ... */
 
-#define IBUFSIZ (BUFSIZ + 1)
+#define IBUFSIZ COMMON_BUFSIZE
 #define basebuf bb_common_bufsiz1       /* buffer for top level input file */
 
 /* Syntax classes */
@@ -8481,11 +8481,6 @@ enum {
        INPUT_NOFILE_OK = 2,
 };
 
-/*
- * NEOF is returned by parsecmd when it encounters an end of file.  It
- * must be distinct from NULL, so we use the address of a variable that
- * happens to be handy.
- */
 static int plinno = 1;                  /* input line number */
 /* number of characters left in input buffer */
 static int parsenleft;                  /* copy of parsefile->nleft */
@@ -8906,7 +8901,7 @@ setinputstring(char *string)
 /* times of mailboxes */
 static time_t mailtime[MAXMBOXES];
 /* Set if MAIL or MAILPATH is changed. */
-static int mail_var_path_changed;
+static smallint mail_var_path_changed;
 
 /*
  * Print appropriate message(s) if mail has arrived.
@@ -8957,7 +8952,7 @@ chkmail(void)
 static void
 changemail(const char *val)
 {
-       mail_var_path_changed++;
+       mail_var_path_changed = 1;
 }
 
 #endif /* ASH_MAIL */
@@ -9304,15 +9299,20 @@ getoptscmd(int argc, char **argv)
 
 /* ============ Shell parser */
 
-static int tokpushback;                /* last token pushed back */
+/*
+ * NEOF is returned by parsecmd when it encounters an end of file.  It
+ * must be distinct from NULL, so we use the address of a variable that
+ * happens to be handy.
+ */
+static smallint tokpushback;           /* last token pushed back */
 #define NEOF ((union node *)&tokpushback)
-static int parsebackquote;             /* nonzero if we are inside backquotes */
+static smallint parsebackquote;        /* nonzero if we are inside backquotes */
 static int lasttoken;                  /* last token read */
 static char *wordtext;                 /* text of last word returned by readtoken */
 static struct nodelist *backquotelist;
 static union node *redirnode;
 static struct heredoc *heredoc;
-static int quoteflag;                  /* set if (part of) last token was quoted */
+static smallint quoteflag;             /* set if (part of) last token was quoted */
 
 static void raise_error_syntax(const char *) ATTRIBUTE_NORETURN;
 static void
@@ -9406,7 +9406,7 @@ list(int nlflag)
                                if (nlflag == 1)
                                        return n1;
                        } else {
-                               tokpushback++;
+                               tokpushback = 1;
                        }
                        checkkwd = CHKNL | CHKKWD | CHKALIAS;
                        if (peektoken())
@@ -9421,7 +9421,7 @@ list(int nlflag)
                default:
                        if (nlflag == 1)
                                raise_error_unexpected_syntax(-1);
-                       tokpushback++;
+                       tokpushback = 1;
                        return n1;
                }
        }
@@ -9441,7 +9441,7 @@ andor(void)
                } else if (t == TOR) {
                        t = NOR;
                } else {
-                       tokpushback++;
+                       tokpushback = 1;
                        return n1;
                }
                checkkwd = CHKNL | CHKKWD | CHKALIAS;
@@ -9467,7 +9467,7 @@ pipeline(void)
                negate = !negate;
                checkkwd = CHKKWD | CHKALIAS;
        } else
-               tokpushback++;
+               tokpushback = 1;
        n1 = parse_command();
        if (readtoken() == TPIPE) {
                pipenode = stalloc(sizeof(struct npipe));
@@ -9486,7 +9486,7 @@ pipeline(void)
                lp->next = NULL;
                n1 = pipenode;
        }
-       tokpushback++;
+       tokpushback = 1;
        if (negate) {
                n2 = stalloc(sizeof(struct nnot));
                n2->type = NNOT;
@@ -9644,7 +9644,7 @@ simplecmd(void)
                        }
                        /* fall through */
                default:
-                       tokpushback++;
+                       tokpushback = 1;
                        goto out;
                }
        }
@@ -9698,7 +9698,7 @@ parse_command(void)
                        n2->nif.elsepart = list(0);
                else {
                        n2->nif.elsepart = NULL;
-                       tokpushback++;
+                       tokpushback = 1;
                }
                t = TFI;
                break;
@@ -9751,7 +9751,7 @@ parse_command(void)
                         * that the original Bourne shell only allowed NL).
                         */
                        if (lasttoken != TNL && lasttoken != TSEMI)
-                               tokpushback++;
+                               tokpushback = 1;
                }
                checkkwd = CHKNL | CHKKWD | CHKALIAS;
                if (readtoken() != TDO)
@@ -9824,7 +9824,7 @@ parse_command(void)
                break;
        case TWORD:
        case TREDIR:
-               tokpushback++;
+               tokpushback = 1;
                return simplecmd();
        }
 
@@ -9840,7 +9840,7 @@ parse_command(void)
                rpp = &n2->nfile.next;
                parsefname();
        }
-       tokpushback++;
+       tokpushback = 1;
        *rpp = NULL;
        if (redir) {
                if (n1->type != NSUBSHELL) {
@@ -9866,8 +9866,6 @@ parse_command(void)
  * will run code that appears at the end of readtoken1.
  */
 
-static int parsebackquote;             /* nonzero if we are inside backquotes */
-
 #define CHECKEND()      {goto checkend; checkend_return:;}
 #define PARSEREDIR()    {goto parseredir; parseredir_return:;}
 #define PARSESUB()      {goto parsesub; parsesub_return:;}
@@ -9878,19 +9876,21 @@ static int parsebackquote;             /* nonzero if we are inside backquotes */
 static int
 readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
 {
+       /* NB: syntax parameter fits into smallint */
        int c = firstc;
        char *out;
        int len;
        char line[EOFMARKLEN + 1];
-       struct nodelist *bqlist = 0;
-       int quotef = 0;
-       int dblquote = 0;
-       int varnest = 0;    /* levels of variables expansion */
-       int arinest = 0;    /* levels of arithmetic expansion */
-       int parenlevel = 0; /* levels of parens in arithmetic */
-       int dqvarnest = 0;  /* levels of variables expansion within double quotes */
-       int oldstyle = 0;
-       int prevsyntax = 0; /* syntax before arithmetic */
+       struct nodelist *bqlist;
+       smallint quotef;
+       smallint dblquote;
+       smallint oldstyle;
+       smallint prevsyntax; /* syntax before arithmetic */
+       int varnest;         /* levels of variables expansion */
+       int arinest;         /* levels of arithmetic expansion */
+       int parenlevel;      /* levels of parens in arithmetic */
+       int dqvarnest;       /* levels of variables expansion within double quotes */
+
 #if __GNUC__
        /* Avoid longjmp clobbering */
        (void) &out;
@@ -9904,13 +9904,12 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
        (void) &prevsyntax;
        (void) &syntax;
 #endif
-
        startlinno = plinno;
-       dblquote = 0;
-       if (syntax == DQSYNTAX)
-               dblquote = 1;
-       quotef = 0;
        bqlist = NULL;
+       quotef = 0;
+       dblquote = (syntax == DQSYNTAX);
+       oldstyle = 0;
+       prevsyntax = 0;
        varnest = 0;
        arinest = 0;
        parenlevel = 0;
@@ -9961,7 +9960,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
                                        if (SIT(c, SQSYNTAX) == CCTL)
                                                USTPUTC(CTLESC, out);
                                        USTPUTC(c, out);
-                                       quotef++;
+                                       quotef = 1;
                                }
                                break;
                        case CSQUOTE:
@@ -9985,7 +9984,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
                                                syntax = BASESYNTAX;
                                                dblquote = 0;
                                        }
-                                       quotef++;
+                                       quotef = 1;
                                        goto quotemark;
                                }
                                break;
@@ -10017,10 +10016,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
                                                if (--arinest == 0) {
                                                        USTPUTC(CTLENDARI, out);
                                                        syntax = prevsyntax;
-                                                       if (syntax == DQSYNTAX)
-                                                               dblquote = 1;
-                                                       else
-                                                               dblquote = 0;
+                                                       dblquote = (syntax == DQSYNTAX);
                                                } else
                                                        USTPUTC(')', out);
                                        } else {
@@ -10306,17 +10302,17 @@ parsesub: {
  */
 parsebackq: {
        struct nodelist **nlpp;
-       int savepbq;
+       smallint savepbq;
        union node *n;
        char *volatile str;
        struct jmploc jmploc;
        struct jmploc *volatile savehandler;
        size_t savelen;
-       int saveprompt = 0;
+       smallint saveprompt = 0;
+
 #ifdef __GNUC__
        (void) &saveprompt;
 #endif
-
        savepbq = parsebackquote;
        if (setjmp(jmploc.loc)) {
                if (str)
@@ -10651,7 +10647,7 @@ readtoken(void)
 {
        int t;
 #if DEBUG
-       int alreadyseen = tokpushback;
+       smallint alreadyseen = tokpushback;
 #endif
 
 #if ENABLE_ASH_ALIAS
@@ -10717,7 +10713,7 @@ peektoken(void)
        int t;
 
        t = readtoken();
-       tokpushback++;
+       tokpushback = 1;
        return tokname_array[t][0];
 }
 
@@ -10740,7 +10736,7 @@ parsecmd(int interact)
                return NEOF;
        if (t == TNL)
                return NULL;
-       tokpushback++;
+       tokpushback = 1;
        return list(1);
 }