NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/48498 CVS commit: src/bin/sh



The following reply was made to PR bin/48498; it has been noted by GNATS.

From: "Robert Elz" <kre%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/48498 CVS commit: src/bin/sh
Date: Wed, 26 Jul 2017 23:09:41 +0000

 Module Name:	src
 Committed By:	kre
 Date:		Wed Jul 26 23:09:41 UTC 2017
 
 Modified Files:
 	src/bin/sh: parser.c
 
 Log Message:
 PR bin/48498   PR bin/52426
 
 Don't ignore unexpected reserved words after ';'
 Don't allow any random token type as a case stmt pattern, only a word.
 	Those are ancient ash bugs and do not affect correct scripts.
 
 Don't ignore redirects in a case stmt list where the list is nothing but
 redirects (if the pattern matches, the redirects should be performed).
 	That was introduced when a redirect only case stmt list was allowed
 	(older shells had generated a syntax error.)
 
 Random cleanups/refactoring taken from or inspired by the FreeBSD sh
 parser ...  use makename() consistently to create a NARG node - we
 were using it in a couple of places but most NARG node creation was open
 coded.  Introduce consumetoken() (from FreeBSD) to handle the fairly
 common case where exactly one token type must come next, and we need to
 check that, and skip past it when found (or error) and linebreak() (new)
 to handle places where optional \n's are permitted.
 Both previously open coded.
 
 Simplify list() by removing its second arg, which was only ever used when
 handling the end of a `` (old style command substitution).  Simply move
 the code from inside list() to just after its call in the `` case (from
 FreeBSD.)
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.141 -r1.142 src/bin/sh/parser.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index