diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-12-11 19:14:40 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-12-11 19:14:40 +0000 |
commit | b2356f6de94820291f35d63943a622708546b59c (patch) | |
tree | bd50b81de4d0c86b1bb73655ac1b511e33041ff0 | |
parent | 59ec601b8e4db86e1861d12f4efc6d1dbb440e28 (diff) | |
download | busybox-w32-b2356f6de94820291f35d63943a622708546b59c.tar.gz busybox-w32-b2356f6de94820291f35d63943a622708546b59c.tar.bz2 busybox-w32-b2356f6de94820291f35d63943a622708546b59c.zip |
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.c | 4 | ||||
-rw-r--r-- | sh.c | 4 | ||||
-rw-r--r-- | shell/lash.c | 4 |
3 files changed, 9 insertions, 3 deletions
@@ -933,8 +933,10 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi | |||
933 | } | 933 | } |
934 | 934 | ||
935 | /* in shell, "\'" should yield \' */ | 935 | /* in shell, "\'" should yield \' */ |
936 | if (*src != quote) | 936 | if (*src != quote) { |
937 | *buf++ = '\\'; | 937 | *buf++ = '\\'; |
938 | *buf++ = '\\'; | ||
939 | } | ||
938 | } else if (*src == '*' || *src == '?' || *src == '[' || | 940 | } else if (*src == '*' || *src == '?' || *src == '[' || |
939 | *src == ']') *buf++ = '\\'; | 941 | *src == ']') *buf++ = '\\'; |
940 | *buf++ = *src; | 942 | *buf++ = *src; |
@@ -933,8 +933,10 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi | |||
933 | } | 933 | } |
934 | 934 | ||
935 | /* in shell, "\'" should yield \' */ | 935 | /* in shell, "\'" should yield \' */ |
936 | if (*src != quote) | 936 | if (*src != quote) { |
937 | *buf++ = '\\'; | 937 | *buf++ = '\\'; |
938 | *buf++ = '\\'; | ||
939 | } | ||
938 | } else if (*src == '*' || *src == '?' || *src == '[' || | 940 | } else if (*src == '*' || *src == '?' || *src == '[' || |
939 | *src == ']') *buf++ = '\\'; | 941 | *src == ']') *buf++ = '\\'; |
940 | *buf++ = *src; | 942 | *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 | |||
933 | } | 933 | } |
934 | 934 | ||
935 | /* in shell, "\'" should yield \' */ | 935 | /* in shell, "\'" should yield \' */ |
936 | if (*src != quote) | 936 | if (*src != quote) { |
937 | *buf++ = '\\'; | 937 | *buf++ = '\\'; |
938 | *buf++ = '\\'; | ||
939 | } | ||
938 | } else if (*src == '*' || *src == '?' || *src == '[' || | 940 | } else if (*src == '*' || *src == '?' || *src == '[' || |
939 | *src == ']') *buf++ = '\\'; | 941 | *src == ']') *buf++ = '\\'; |
940 | *buf++ = *src; | 942 | *buf++ = *src; |