2013-04-27 Paul Smith <psmith@gnu.org>
+ * job.c (construct_command_argv_internal): Fix oneshell support
+ for non-POSIX-sh shells.
+
* load.c (load_object): Extract all POSIX-isms into a separate
function for portability.
(load_file): Check the .LOADED variable first and don't invoke
}
}
*t = '\0';
-
- /* Create an argv list for the shell command line. */
- {
- int n = 0;
-
- new_argv = xmalloc ((4 + sflags_len/2) * sizeof (char *));
- new_argv[n++] = xstrdup (shell);
-
- /* Chop up the shellflags (if any) and assign them. */
- if (! shellflags)
- new_argv[n++] = xstrdup ("");
- else
- {
- const char *s = shellflags;
- char *t;
- unsigned int len;
- while ((t = find_next_token (&s, &len)) != 0)
- new_argv[n++] = xstrndup (t, len);
- }
-
- /* Set the command to invoke. */
- new_argv[n++] = line;
- new_argv[n++] = NULL;
- }
}
#ifdef WINDOWS32
else /* non-Posix shell */
new_argv[0] = xstrdup (*batch_filename);
new_argv[1] = NULL;
}
-#endif /* WINDOWS32 */
- return new_argv;
+#else /* WINDOWS32 */
+ /* Create an argv list for the shell command line. */
+ {
+ int n = 0;
+
+ new_argv = xmalloc ((4 + sflags_len/2) * sizeof (char *));
+ new_argv[n++] = xstrdup (shell);
+
+ /* Chop up the shellflags (if any) and assign them. */
+ if (! shellflags)
+ new_argv[n++] = xstrdup ("");
+ else
+ {
+ const char *s = shellflags;
+ char *t;
+ unsigned int len;
+ while ((t = find_next_token (&s, &len)) != 0)
+ new_argv[n++] = xstrndup (t, len);
+ }
+
+ /* Set the command to invoke. */
+ new_argv[n++] = line;
+ new_argv[n++] = NULL;
+ }
+#endif /* WINDOWS32 */
+ return new_argv;
}
new_line = xmalloc ((shell_len*2) + 1 + sflags_len + 1