From e00e16ad7f86c2c0112fc4172be2a1d03308f4c8 Mon Sep 17 00:00:00 2001 From: "Tim J. Robbins" Date: Mon, 30 Sep 2002 10:57:44 +0000 Subject: [PATCH] Allow empty case/esac statements; POSIX requires this, and recent versions of autoconf are generating scripts that use this feature. PR: 43275 35879 Submitted by: Dan Nelson --- bin/sh/parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/sh/parser.c b/bin/sh/parser.c index 5da28adabf2f..8a2e988c85e3 100644 --- a/bin/sh/parser.c +++ b/bin/sh/parser.c @@ -429,7 +429,7 @@ TRACE(("expecting DO got %s %s\n", tokname[got], got == TWORD ? wordtext : "")); cpp = &n1->ncase.cases; noaliases = 1; /* turn off alias expansion */ checkkwd = 2, readtoken(); - do { + while (lasttoken != TESAC) { *cpp = cp = (union node *)stalloc(sizeof (struct nclist)); cp->type = NCLIST; app = &cp->nclist.pattern; @@ -456,7 +456,7 @@ TRACE(("expecting DO got %s %s\n", tokname[got], got == TWORD ? wordtext : "")); checkkwd = 2, readtoken(); } cpp = &cp->nclist.next; - } while(lasttoken != TESAC); + } noaliases = 0; /* reset alias expansion */ *cpp = NULL; checkkwd = 1;