summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2010-10-28 21:51:14 +0000
committerjilles <jilles@FreeBSD.org>2010-10-28 21:51:14 +0000
commit8e66c8e658c885e644b565894b40bc181dd067c9 (patch)
tree452517ba657aea1e954db8a5ce5c6c8a70bb1d77 /bin
parent14c0facba5bb720411c394c92135c20a617f04e0 (diff)
downloadFreeBSD-src-8e66c8e658c885e644b565894b40bc181dd067c9.zip
FreeBSD-src-8e66c8e658c885e644b565894b40bc181dd067c9.tar.gz
sh: Make double-quotes quote a '}' inside ${v#...} and ${v%...}.
Exp-run done by: pav (with some other sh(1) changes) PR: bin/57554
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/parser.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index 9500d91..5c0d2b1 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -1234,7 +1234,8 @@ readtoken1(int firstc, char const *initialsyntax, char *eofmark, int striptabs)
case CENDVAR: /* '}' */
if (level > 0 &&
(state[level].category == TSTATE_VAR_OLD ||
- state[level].category == TSTATE_VAR_NEW)) {
+ (state[level].category == TSTATE_VAR_NEW &&
+ state[level].syntax == BASESYNTAX))) {
if (state[level].category == TSTATE_VAR_OLD)
state[level - 1].syntax = state[level].syntax;
else
OpenPOWER on IntegriCloud