summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2013-04-29 19:17:07 +0300
committerEli Zaretskii <eliz@gnu.org>2013-04-29 19:17:07 +0300
commit9a7fe22b197770271a2235062fe52cb1c71a3d9e (patch)
tree0fba9df7de18b86b7e2a08ba5ab41bf3e82a5cff
parent9253a34a57be0c6688278d120c450d1e81971a31 (diff)
downloadgunmake-9a7fe22b197770271a2235062fe52cb1c71a3d9e.tar.gz
Fix the .ONESHELL operation on MS-Windows.
job.c (construct_command_argv_internal) [WINDOWS32]: Return right after generating new_argv for one_shell case. This fixes the Windows build for both Unixy shell and stock Windows shells.
-rw-r--r--ChangeLog6
-rw-r--r--job.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index edf30c3..e297795 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-04-29 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (construct_command_argv_internal) [WINDOWS32]: Return
+ right after generating new_argv for one_shell case. This fixes
+ the Windows build for both Unixy shell and stock Windows shells.
+
2013-04-28 Eli Zaretskii <eliz@gnu.org>
* dir.c (local_stat) [WINDOWS32]: Use the wrapper on MS-Windows.
diff --git a/job.c b/job.c
index 91da29b..2a470b6 100644
--- a/job.c
+++ b/job.c
@@ -3335,7 +3335,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
*t = '\0';
}
#ifdef WINDOWS32
- else /* non-Posix shell */
+ else /* non-Posix shell (cmd.exe etc.) */
{
const char *f = line;
char *t = line;
@@ -3404,8 +3404,9 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
new_argv = xmalloc (2 * sizeof (char *));
new_argv[0] = xstrdup (*batch_filename);
new_argv[1] = NULL;
+ return new_argv;
}
-#else /* WINDOWS32 */
+#endif /* WINDOWS32 */
/* Create an argv list for the shell command line. */
{
int n = 0;
@@ -3429,7 +3430,6 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
new_argv[n++] = line;
new_argv[n++] = NULL;
}
-#endif /* WINDOWS32 */
return new_argv;
}