From 1166d7b1360285659aa7585e5c5bd4e1321aeeaf Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 16 Sep 2009 16:20:31 +0200 Subject: ash: fix bug 585 (>"$VAR_WITH_UNICODE_CHARS" problem) Signed-off-by: Denys Vlasenko --- shell/ash.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index ab13021..4360770 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -5552,7 +5552,7 @@ exptilde(char *startp, char *p, int flags) char *name; struct passwd *pw; const char *home; - int quotes = flags & (EXP_FULL | EXP_CASE); + int quotes = flags & (EXP_FULL | EXP_CASE | EXP_REDIR); int startloc; name = p + 1; @@ -6327,7 +6327,7 @@ varvalue(char *name, int varflags, int flags, struct strlist *var_str_list) int syntax; int quoted = varflags & VSQUOTE; int subtype = varflags & VSTYPE; - int quotes = flags & (EXP_FULL | EXP_CASE); + int quotes = flags & (EXP_FULL | EXP_CASE | EXP_REDIR); if (quoted && (flags & EXP_FULL)) sep = 1 << CHAR_BIT; @@ -6563,6 +6563,7 @@ evalvar(char *p, int flags, struct strlist *var_str_list) patloc = expdest - (char *)stackblock(); if (0 == subevalvar(p, /* str: */ NULL, patloc, subtype, startloc, varflags, +//TODO: | EXP_REDIR too? All other such places do it too /* quotes: */ flags & (EXP_FULL | EXP_CASE), var_str_list) ) { -- cgit v1.1