From 637982f5bbe7a5be4e5409ab0404df2583e7c299 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 6 Jul 2017 01:52:23 +0200 Subject: hush: correctly handle quoting in "case" even if !BASH_PATTERN_SUBST Signed-off-by: Denys Vlasenko --- shell/hush.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/shell/hush.c b/shell/hush.c index 7574e3918..aee77d03b 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -5189,7 +5189,7 @@ static struct pipe *parse_stream(char **pstring, /*** Execution routines ***/ /* Expansion can recurse, need forward decls: */ -#if !BASH_PATTERN_SUBST +#if !BASH_PATTERN_SUBST && !ENABLE_HUSH_CASE /* only ${var/pattern/repl} (its pattern part) needs additional mode */ #define expand_string_to_string(str, do_unbackslash) \ expand_string_to_string(str) @@ -5317,6 +5317,9 @@ static int expand_on_ifs(int *ended_with_ifs, o_string *output, int n, const cha #endif static char *encode_then_expand_string(const char *str, int process_bkslash, int do_unbackslash) { +#if !BASH_PATTERN_SUBST + const int do_unbackslash = 1; +#endif char *exp_str; struct in_str input; o_string dest = NULL_O_STRING; @@ -5936,7 +5939,7 @@ static char **expand_strvec_to_strvec_singleword_noglob(char **argv) */ static char *expand_string_to_string(const char *str, int do_unbackslash) { -#if !BASH_PATTERN_SUBST +#if !BASH_PATTERN_SUBST && !ENABLE_HUSH_CASE const int do_unbackslash = 1; #endif char *argv[2], **list; -- cgit v1.2.3