ash: fix bug 585 (>"$VAR_WITH_UNICODE_CHARS" problem)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -5552,7 +5552,7 @@ exptilde(char *startp, char *p, int flags)
|
|||||||
char *name;
|
char *name;
|
||||||
struct passwd *pw;
|
struct passwd *pw;
|
||||||
const char *home;
|
const char *home;
|
||||||
int quotes = flags & (EXP_FULL | EXP_CASE);
|
int quotes = flags & (EXP_FULL | EXP_CASE | EXP_REDIR);
|
||||||
int startloc;
|
int startloc;
|
||||||
|
|
||||||
name = p + 1;
|
name = p + 1;
|
||||||
@@ -6327,7 +6327,7 @@ varvalue(char *name, int varflags, int flags, struct strlist *var_str_list)
|
|||||||
int syntax;
|
int syntax;
|
||||||
int quoted = varflags & VSQUOTE;
|
int quoted = varflags & VSQUOTE;
|
||||||
int subtype = varflags & VSTYPE;
|
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))
|
if (quoted && (flags & EXP_FULL))
|
||||||
sep = 1 << CHAR_BIT;
|
sep = 1 << CHAR_BIT;
|
||||||
@@ -6563,6 +6563,7 @@ evalvar(char *p, int flags, struct strlist *var_str_list)
|
|||||||
patloc = expdest - (char *)stackblock();
|
patloc = expdest - (char *)stackblock();
|
||||||
if (0 == subevalvar(p, /* str: */ NULL, patloc, subtype,
|
if (0 == subevalvar(p, /* str: */ NULL, patloc, subtype,
|
||||||
startloc, varflags,
|
startloc, varflags,
|
||||||
|
//TODO: | EXP_REDIR too? All other such places do it too
|
||||||
/* quotes: */ flags & (EXP_FULL | EXP_CASE),
|
/* quotes: */ flags & (EXP_FULL | EXP_CASE),
|
||||||
var_str_list)
|
var_str_list)
|
||||||
) {
|
) {
|
||||||
|
Reference in New Issue
Block a user