diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-11-30 00:03:57 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-11-30 00:03:57 +0000 |
commit | 8c2d3f46ab4fd7310174a96ca770859dabcf325e (patch) | |
tree | 5379c0ce4f90ecb4d0d2a57aaf29130fececdad0 | |
parent | 9bd71e832343489bd53c5d2b454252614564787f (diff) | |
download | busybox-w32-8c2d3f46ab4fd7310174a96ca770859dabcf325e.tar.gz busybox-w32-8c2d3f46ab4fd7310174a96ca770859dabcf325e.tar.bz2 busybox-w32-8c2d3f46ab4fd7310174a96ca770859dabcf325e.zip |
Fix escape char problem.
-rw-r--r-- | lash.c | 17 | ||||
-rw-r--r-- | sh.c | 17 | ||||
-rw-r--r-- | shell/lash.c | 17 |
3 files changed, 39 insertions, 12 deletions
@@ -797,9 +797,13 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, | |||
797 | /* we need to remove whatever \ quoting is still present */ | 797 | /* we need to remove whatever \ quoting is still present */ |
798 | src = dst = prog->argv[argc_l - 1]; | 798 | src = dst = prog->argv[argc_l - 1]; |
799 | while (*src) { | 799 | while (*src) { |
800 | if (*src != '\\') | 800 | if (*src == '\\') { |
801 | src++; | ||
802 | *dst++ = process_escape_sequence(&src); | ||
803 | } else { | ||
801 | *dst++ = *src; | 804 | *dst++ = *src; |
802 | src++; | 805 | src++; |
806 | } | ||
803 | } | 807 | } |
804 | *dst = '\0'; | 808 | *dst = '\0'; |
805 | } else if (!rc) { | 809 | } else if (!rc) { |
@@ -812,11 +816,16 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, | |||
812 | }else{ | 816 | }else{ |
813 | src = dst = prog->argv[argc_l - 1]; | 817 | src = dst = prog->argv[argc_l - 1]; |
814 | while (*src) { | 818 | while (*src) { |
815 | if (*src != '\\') | 819 | if (*src == '\\') { |
820 | src++; | ||
821 | *dst++ = process_escape_sequence(&src); | ||
822 | } else { | ||
816 | *dst++ = *src; | 823 | *dst++ = *src; |
817 | src++; | 824 | src++; |
825 | } | ||
818 | } | 826 | } |
819 | *dst = '\0'; | 827 | *dst = '\0'; |
828 | |||
820 | prog->globResult.gl_pathc=0; | 829 | prog->globResult.gl_pathc=0; |
821 | if (flags==0) | 830 | if (flags==0) |
822 | prog->globResult.gl_pathv=NULL; | 831 | prog->globResult.gl_pathv=NULL; |
@@ -797,9 +797,13 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, | |||
797 | /* we need to remove whatever \ quoting is still present */ | 797 | /* we need to remove whatever \ quoting is still present */ |
798 | src = dst = prog->argv[argc_l - 1]; | 798 | src = dst = prog->argv[argc_l - 1]; |
799 | while (*src) { | 799 | while (*src) { |
800 | if (*src != '\\') | 800 | if (*src == '\\') { |
801 | src++; | ||
802 | *dst++ = process_escape_sequence(&src); | ||
803 | } else { | ||
801 | *dst++ = *src; | 804 | *dst++ = *src; |
802 | src++; | 805 | src++; |
806 | } | ||
803 | } | 807 | } |
804 | *dst = '\0'; | 808 | *dst = '\0'; |
805 | } else if (!rc) { | 809 | } else if (!rc) { |
@@ -812,11 +816,16 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, | |||
812 | }else{ | 816 | }else{ |
813 | src = dst = prog->argv[argc_l - 1]; | 817 | src = dst = prog->argv[argc_l - 1]; |
814 | while (*src) { | 818 | while (*src) { |
815 | if (*src != '\\') | 819 | if (*src == '\\') { |
820 | src++; | ||
821 | *dst++ = process_escape_sequence(&src); | ||
822 | } else { | ||
816 | *dst++ = *src; | 823 | *dst++ = *src; |
817 | src++; | 824 | src++; |
825 | } | ||
818 | } | 826 | } |
819 | *dst = '\0'; | 827 | *dst = '\0'; |
828 | |||
820 | prog->globResult.gl_pathc=0; | 829 | prog->globResult.gl_pathc=0; |
821 | if (flags==0) | 830 | if (flags==0) |
822 | prog->globResult.gl_pathv=NULL; | 831 | prog->globResult.gl_pathv=NULL; |
diff --git a/shell/lash.c b/shell/lash.c index 7f5b90602..87d4fbfbd 100644 --- a/shell/lash.c +++ b/shell/lash.c | |||
@@ -797,9 +797,13 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, | |||
797 | /* we need to remove whatever \ quoting is still present */ | 797 | /* we need to remove whatever \ quoting is still present */ |
798 | src = dst = prog->argv[argc_l - 1]; | 798 | src = dst = prog->argv[argc_l - 1]; |
799 | while (*src) { | 799 | while (*src) { |
800 | if (*src != '\\') | 800 | if (*src == '\\') { |
801 | src++; | ||
802 | *dst++ = process_escape_sequence(&src); | ||
803 | } else { | ||
801 | *dst++ = *src; | 804 | *dst++ = *src; |
802 | src++; | 805 | src++; |
806 | } | ||
803 | } | 807 | } |
804 | *dst = '\0'; | 808 | *dst = '\0'; |
805 | } else if (!rc) { | 809 | } else if (!rc) { |
@@ -812,11 +816,16 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, | |||
812 | }else{ | 816 | }else{ |
813 | src = dst = prog->argv[argc_l - 1]; | 817 | src = dst = prog->argv[argc_l - 1]; |
814 | while (*src) { | 818 | while (*src) { |
815 | if (*src != '\\') | 819 | if (*src == '\\') { |
820 | src++; | ||
821 | *dst++ = process_escape_sequence(&src); | ||
822 | } else { | ||
816 | *dst++ = *src; | 823 | *dst++ = *src; |
817 | src++; | 824 | src++; |
825 | } | ||
818 | } | 826 | } |
819 | *dst = '\0'; | 827 | *dst = '\0'; |
828 | |||
820 | prog->globResult.gl_pathc=0; | 829 | prog->globResult.gl_pathc=0; |
821 | if (flags==0) | 830 | if (flags==0) |
822 | prog->globResult.gl_pathv=NULL; | 831 | prog->globResult.gl_pathv=NULL; |