summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-08-06 20:06:21 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2010-08-06 20:06:21 (GMT)
commit1614900522a5d603909a2679acbdd4744c235c1b (patch)
tree8a9892d7487a0d3c9db9367da4970d89aacb6e94
parentc8d305d89f06e0d6612b7acdc91cb8775f5667b1 (diff)
downloadbusybox-1614900522a5d603909a2679acbdd4744c235c1b.tar.gz
busybox-1614900522a5d603909a2679acbdd4744c235c1b.tar.bz2
ash: fix another bug detected by var_bash4.tests
... but var_bash4.tests still does not pass! function old new delta expandarg 959 962 +3 localcmd 259 257 -2 readtoken1 3275 3260 -15 subevalvar 1178 1141 -37 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/3 up/down: 3/-54) Total: -51 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--shell/ash.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 74b1c3a..dcac4fe 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -6272,6 +6272,8 @@ parse_sub_pattern(char *arg, int varflags)
char *idx, *repl = NULL;
unsigned char c;
+ //char *org_arg = arg;
+ //bb_error_msg("arg:'%s'", arg);
idx = arg;
while (1) {
c = *arg;
@@ -6290,6 +6292,7 @@ parse_sub_pattern(char *arg, int varflags)
arg++;
}
*idx = c; /* NUL */
+ //bb_error_msg("pattern:'%s' repl:'%s'", org_arg, repl);
return repl;
}
@@ -6499,8 +6502,6 @@ subevalvar(char *p, char *varname, int strloc, int subtype,
//bb_error_msg("tail:'%s', quotes:%x", idx, quotes);
while (*idx) {
char *restart_detect = stackblock();
- if (quotes && (unsigned char)*idx == CTLESC)
- idx++;
STPUTC(*idx, expdest);
if (stackblock() != restart_detect)
goto restart;