From 1ed728ca0ea91cac348e1baf070399df5d575115 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sun, 21 Nov 2010 14:42:22 +0100 Subject: [PARSER] Remove backslash before } in double-quotes in variable The backslash prevents the closing brace from terminating the substitution, therefore it should be removed. FreeBSD sh test expansion/plus-minus2.0 starts working, no other tests are affected. Example: printf "%s\n" ${$+\}} ${$+"\}"} "${$+\}}" should print } three times, without backslashes. Signed-off-by: Jonathan Nieder --- src/parser.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/parser.c b/src/parser.c index 6de27629..4fa8c6d4 100644 --- src/parser.c +++ src/parser.c @@ -926,6 +926,9 @@ readtoken1(int firstc, char const *syntax, char *eofmark, int striptabs) c != '$' && ( c != '"' || eofmark != NULL + ) && ( + c != '}' || + varnest == 0 ) ) { USTPUTC('\\', out); -- 1.7.6