1
0
mirror of https://github.com/mirror/make.git synced 2025-03-28 21:11:03 +08:00

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.
This commit is contained in:
Eli Zaretskii 2013-05-01 18:31:53 +03:00
parent a87ff20158
commit 2926f7b466
2 changed files with 13 additions and 0 deletions

View File

@ -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>

9
job.c
View File

@ -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