Author: jilles
Date: Wed Jul 14 22:31:45 2010
New Revision: 210087
URL: http://svn.freebsd.org/changeset/base/210087

Log:
  sh: There cannot be a TNOT in simplecmd(), remove checks.
  
  simplecmd() only handles simple commands and function definitions, neither
  of which involves the ! keyword. The initial token on entry to simplecmd()
  is one of the following: TSEMI, TAND, TOR, TNL, TEOF, TWORD, TRP.

Modified:
  head/bin/sh/parser.c

Modified: head/bin/sh/parser.c
==============================================================================
--- head/bin/sh/parser.c        Wed Jul 14 21:52:23 2010        (r210086)
+++ head/bin/sh/parser.c        Wed Jul 14 22:31:45 2010        (r210087)
@@ -609,8 +609,7 @@ simplecmd(union node **rpp, union node *
 {
        union node *args, **app;
        union node **orig_rpp = rpp;
-       union node *n = NULL, *n2;
-       int negate = 0;
+       union node *n = NULL;
 
        /* If we don't have any redirections already, then we must reset */
        /* rpp to be the address of the local redir variable.  */
@@ -626,12 +625,6 @@ simplecmd(union node **rpp, union node *
         */
        orig_rpp = rpp;
 
-       while (readtoken() == TNOT) {
-               TRACE(("command: TNOT recognized\n"));
-               negate = !negate;
-       }
-       tokpushback++;
-
        for (;;) {
                if (readtoken() == TWORD) {
                        n = (union node *)stalloc(sizeof (struct narg));
@@ -657,7 +650,7 @@ simplecmd(union node **rpp, union node *
                        n->type = NDEFUN;
                        n->narg.next = command();
                        funclinno = 0;
-                       goto checkneg;
+                       return n;
                } else {
                        tokpushback++;
                        break;
@@ -670,16 +663,7 @@ simplecmd(union node **rpp, union node *
        n->ncmd.backgnd = 0;
        n->ncmd.args = args;
        n->ncmd.redirect = redir;
-
-checkneg:
-       if (negate) {
-               n2 = (union node *)stalloc(sizeof (struct nnot));
-               n2->type = NNOT;
-               n2->nnot.com = n;
-               return n2;
-       }
-       else
-               return n;
+       return n;
 }
 
 STATIC union node *
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to