void-packages/srcpkgs/dash/patches/0002-PARSER-Remove-backslash-before-in-double-quotes-in-va.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