diff options
author | Eli Zaretskii <eliz@gnu.org> | 2013-05-01 18:31:53 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2013-05-01 18:31:53 +0300 |
commit | 2926f7b4662409d3445df7c590e80f001b088cc6 (patch) | |
tree | 73c2333cc1159e493c6ecf85ae57c6a79debb3a5 | |
parent | a87ff20158eead839d9457e240934bdc05ba509d (diff) | |
download | gunmake-2926f7b4662409d3445df7c590e80f001b088cc6.tar.gz |
Fix treatment of whitespace after a backslash on MS-Windows.
job.c (construct_command_argv_internal): Don't treat a backslash as an
escape character before whitespace, if the shell is not a Posix
shell. For the description of the problem, see
http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | job.c | 9 |
2 files changed, 13 insertions, 0 deletions
@@ -2,6 +2,10 @@ * job.c (start_job_command) [WINDOWS32]: Make the same fix for MS-Windows as the previous commit did for Posix platforms. + (construct_command_argv_internal): Don't treat a backslash as an + escape character before whitespace, if the shell is not a Posix + shell. For the description of the problem, see + http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html. 2013-05-01 Paul Smith <psmith@gnu.org> @@ -3076,6 +3076,15 @@ construct_command_argv_internal (char *line, char **restp, char *shell, if (ap == new_argv[i]) p = next_token (p + 1) - 1; } +#ifdef WINDOWS32 + /* Backslash before whitespace is not special if our shell + is not Unixy. */ + else if (isspace (p[1]) && !unixy_shell) + { + *ap++ = *p; + break; + } +#endif else if (p[1] != '\0') { #ifdef HAVE_DOS_PATHS |