aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-12-11 19:14:40 +0000
committerEric Andersen <andersen@codepoet.org>2000-12-11 19:14:40 +0000
commitb2356f6de94820291f35d63943a622708546b59c (patch)
treebd50b81de4d0c86b1bb73655ac1b511e33041ff0
parent59ec601b8e4db86e1861d12f4efc6d1dbb440e28 (diff)
downloadbusybox-b2356f6de94820291f35d63943a622708546b59c.tar.gz
Patch from Matt Kraai to fox sh.c escape problem such that
running things like 'echo "\n\tHi\n\t\!"' and 'echo -e "\n\tHi\n\t\!"' behave as under bash.
-rw-r--r--lash.c4
-rw-r--r--sh.c4
-rw-r--r--shell/lash.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/lash.c b/lash.c
index 07715d4e3..9fc215c98 100644
--- a/lash.c
+++ b/lash.c
@@ -933,8 +933,10 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
}
/* in shell, "\'" should yield \' */
- if (*src != quote)
+ if (*src != quote) {
*buf++ = '\\';
+ *buf++ = '\\';
+ }
} else if (*src == '*' || *src == '?' || *src == '[' ||
*src == ']') *buf++ = '\\';
*buf++ = *src;
diff --git a/sh.c b/sh.c
index 07715d4e3..9fc215c98 100644
--- a/sh.c
+++ b/sh.c
@@ -933,8 +933,10 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
}
/* in shell, "\'" should yield \' */
- if (*src != quote)
+ if (*src != quote) {
*buf++ = '\\';
+ *buf++ = '\\';
+ }
} else if (*src == '*' || *src == '?' || *src == '[' ||
*src == ']') *buf++ = '\\';
*buf++ = *src;
diff --git a/shell/lash.c b/shell/lash.c
index 07715d4e3..9fc215c98 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -933,8 +933,10 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
}
/* in shell, "\'" should yield \' */
- if (*src != quote)
+ if (*src != quote) {
*buf++ = '\\';
+ *buf++ = '\\';
+ }
} else if (*src == '*' || *src == '?' || *src == '[' ||
*src == ']') *buf++ = '\\';
*buf++ = *src;