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
------------------------------------------------------------------------------