37 lines
1 KiB
Diff
37 lines
1 KiB
Diff
From 1ed728ca0ea91cac348e1baf070399df5d575115 Mon Sep 17 00:00:00 2001
|
|
From: Jilles Tjoelker <jilles@stack.nl>
|
|
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 <jrnieder@gmail.com>
|
|
---
|
|
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
|
|
|