svn commit: r210087 - head/bin/sh

Jilles Tjoelker jilles at FreeBSD.org
Wed Jul 14 22:31:45 UTC 2010


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 *


More information about the svn-src-head mailing list