*BSD News Article 19672


Return to BSD News archive

Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!network.ucsd.edu!news.service.uci.edu!ucivax!news.claremont.edu!elroy.jpl.nasa.gov!sdd.hp.com!spool.mu.edu!bloom-beacon.mit.edu!xlink.net!subnet.sub.net!flatlin!bad
From: bad@flatlin.ka.sub.org (Christoph Badura)
Subject: Re: Anyone using the FEB 93 c news? with sh(1)?
Organization: Guru Systems/Funware Department
Date: Thu, 19 Aug 1993 10:24:01 GMT
Message-ID: <CC04w1.DBp@flatlin.ka.sub.org>
References: <almCBy2nL.E33@netcom.com> <CByzv7.Hw2@well.sf.ca.us> <CBz111.Ew8@kithrup.com>
Lines: 68

In <CBz111.Ew8@kithrup.com> sef@kithrup.com (Sean Eric Fagan) writes:
>diff -pr /usr/src/bin/sh/parser.c sh/parser.c
>*** /usr/src/bin/sh/parser.c	Mon Apr 15 17:23:22 1991
>--- sh/parser.c	Sat Apr 17 14:58:56 1993
>*** 337,345 ****
>  			n2->narg.backquote = NULL;
>  			n2->narg.next = NULL;
>  			n1->nfor.args = n2;
>  		}
>- 		if (lasttoken != TNL && lasttoken != TSEMI)
>- 			synexpect(-1);
>  		checkkwd = 2;
>  		if ((t = readtoken()) == TDO)
>  			t = TDONE;
>--- 351,361 ----
>  			n2->narg.backquote = NULL;
>  			n2->narg.next = NULL;
>  			n1->nfor.args = n2;
>+ 			/* A newline or semicolon is optional here. Anything
>+ 			   else gets pushed back so we can read it again.  */
>+ 			if (lasttoken != TNL && lasttoken != TSEMI)
>+ 				tokpushback++;
>  		}
>  		checkkwd = 2;
>  		if ((t = readtoken()) == TDO)
>  			t = TDONE;
>*************** TRACE(("expecting DO got %s %s\n", tokna

Change that part to look like this:
*** parser.c,1	Tue Apr 16 02:23:22 1991
--- parser.c	Thu Jan 21 00:47:55 1993
***************
*** 326,331 ****
--- 326,333 ----
  			}
  			*app = NULL;
  			n1->nfor.args = ap;
+ 			if (lasttoken != TNL && lasttoken != TSEMI)
+ 				synexpect(-1);
  		} else {
  #ifndef GDB_HACK
  			static const char argvars[5] = {CTLVAR, VSNORMAL|VSQUOTE,
***************
*** 337,345 ****
  			n2->narg.backquote = NULL;
  			n2->narg.next = NULL;
  			n1->nfor.args = n2;
  		}
- 		if (lasttoken != TNL && lasttoken != TSEMI)
- 			synexpect(-1);
  		checkkwd = 2;
  		if ((t = readtoken()) == TDO)
  			t = TDONE;
--- 339,346 ----
  			n2->narg.backquote = NULL;
  			n2->narg.next = NULL;
  			n1->nfor.args = n2;
+ 			tokpushback++;
  		}
  		checkkwd = 2;
  		if ((t = readtoken()) == TDO)
  			t = TDONE;

-- 
    Christoph Badura  ---  bad@flatlin.ka.sub.org  ---  +49 721 606137

Personally, I don't care whether someone is cool enough to quote Doug
Gwyn--I only care whether Doug Gwyn is cool enough to quote. -- Larry Wall