summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2010-08-29 04:50:26 +0000
committerPaul Smith <psmith@gnu.org>2010-08-29 04:50:26 +0000
commit3b1432d86aebdc48aaa52efa06fad1ad662b38d7 (patch)
tree021cc745b684823211ceb4e143e6eb3eb9b3a276
parentc3188c6f31620b4e8ec4d9d09255caaeb7032ff9 (diff)
downloadgunmake-3b1432d86aebdc48aaa52efa06fad1ad662b38d7.tar.gz
Set shellflags to a reasonable default if it's not set already.
-rw-r--r--ChangeLog5
-rw-r--r--job.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 392b06a..233be1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-29 Paul Smith <psmith@gnu.org>
+
+ * job.c (construct_command_argv_internal): If shellflags is not
+ set, choose an appropriate default value. Fixes Savannah bug #30748.
+
2010-08-27 Eli Zaretskii <eliz@gnu.org>
* variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]:
diff --git a/job.c b/job.c
index aacfb84..eab91a1 100644
--- a/job.c
+++ b/job.c
@@ -2434,6 +2434,9 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
if (*line == '\0')
return 0;
+ if (shellflags == 0)
+ shellflags = posix_pedantic ? "-ec" : "-c";
+
/* See if it is safe to parse commands internally. */
if (shell == 0)
shell = default_shell;
@@ -2977,7 +2980,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
#endif /* WINDOWS32 */
if (unixy_shell)
- new_argv = construct_command_argv_internal (new_line, 0, 0, 0, 0, flags, 0);
+ new_argv = construct_command_argv_internal (new_line, 0, 0, 0, 0,
+ flags, 0);
#ifdef __EMX__
else if (!unixy_shell)