Subject: Fix for /bin/sh
To: None <current-users@sun-lamp.cs.berkeley.edu>
From: Martin Husemann <martin@euterpe.owl.de>
List: current-users
Date: 06/07/1994 18:48:35
Several people noticed a bug in /bin/sh since the last update of parser.c.
This blows scripts witch alternatives in case statements:

case $i in
 a | b )

would produce a syntax error at "|".

The fix is easy: in src/bin/sh/parser.c line 416 add a "readtoken()"
to swallow the "|" and proceede with the next expression:

				if (checkkwd = 2, readtoken() != TPIPE)
					break;
				app = &ap->narg.next;
+				readtoken();
			}
			ap->narg.next = NULL;


After this patch I'm quite happy with the new shell, all other oddities
of the old ash I knew of are gone now. (Only the return code of assignments
still to fix...)



Martin

------------------------------------------------------------------------------