From: Eric Andersen Date: Thu, 30 Nov 2000 00:03:57 +0000 (-0000) Subject: Fix escape char problem. X-Git-Tag: 0_48~93 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8c2d3f46ab4fd7310174a96ca770859dabcf325e;p=oweals%2Fbusybox.git Fix escape char problem. --- diff --git a/lash.c b/lash.c index 7f5b90602..87d4fbfbd 100644 --- a/lash.c +++ b/lash.c @@ -797,9 +797,13 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, /* we need to remove whatever \ quoting is still present */ src = dst = prog->argv[argc_l - 1]; while (*src) { - if (*src != '\\') + if (*src == '\\') { + src++; + *dst++ = process_escape_sequence(&src); + } else { *dst++ = *src; - src++; + src++; + } } *dst = '\0'; } else if (!rc) { @@ -812,11 +816,16 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, }else{ src = dst = prog->argv[argc_l - 1]; while (*src) { - if (*src != '\\') + if (*src == '\\') { + src++; + *dst++ = process_escape_sequence(&src); + } else { *dst++ = *src; - src++; + src++; + } } *dst = '\0'; + prog->globResult.gl_pathc=0; if (flags==0) prog->globResult.gl_pathv=NULL; diff --git a/sh.c b/sh.c index 7f5b90602..87d4fbfbd 100644 --- a/sh.c +++ b/sh.c @@ -797,9 +797,13 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, /* we need to remove whatever \ quoting is still present */ src = dst = prog->argv[argc_l - 1]; while (*src) { - if (*src != '\\') + if (*src == '\\') { + src++; + *dst++ = process_escape_sequence(&src); + } else { *dst++ = *src; - src++; + src++; + } } *dst = '\0'; } else if (!rc) { @@ -812,11 +816,16 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, }else{ src = dst = prog->argv[argc_l - 1]; while (*src) { - if (*src != '\\') + if (*src == '\\') { + src++; + *dst++ = process_escape_sequence(&src); + } else { *dst++ = *src; - src++; + src++; + } } *dst = '\0'; + prog->globResult.gl_pathc=0; if (flags==0) 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, /* we need to remove whatever \ quoting is still present */ src = dst = prog->argv[argc_l - 1]; while (*src) { - if (*src != '\\') + if (*src == '\\') { + src++; + *dst++ = process_escape_sequence(&src); + } else { *dst++ = *src; - src++; + src++; + } } *dst = '\0'; } else if (!rc) { @@ -812,11 +816,16 @@ static void globLastArgument(struct childProgram *prog, int *argcPtr, }else{ src = dst = prog->argv[argc_l - 1]; while (*src) { - if (*src != '\\') + if (*src == '\\') { + src++; + *dst++ = process_escape_sequence(&src); + } else { *dst++ = *src; - src++; + src++; + } } *dst = '\0'; + prog->globResult.gl_pathc=0; if (flags==0) prog->globResult.gl_pathv=NULL;