← Commit list

637982f5b

Denys Vlasenko
Denys Vlasenko
2017-07-06
SUCCESS Duration: 143s

Subject

hush: correctly handle quoting in "case" even if !BASH_PATTERN_SUBST

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

shell/hush.c+5 -2
@@ -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;