summaryrefslogtreecommitdiff
path: root/modules/m4.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/m4.c')
-rw-r--r--modules/m4.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/modules/m4.c b/modules/m4.c
index d4a58702..394abf3d 100644
--- a/modules/m4.c
+++ b/modules/m4.c
@@ -409,9 +409,6 @@ M4BUILTIN_HANDLER (defn)
/* This section contains macros to handle the builtins "syscmd"
and "sysval". */
-/* FIXME */
-#define SYSCMD_SHELL "/bin/sh"
-
/* Exit code from last "syscmd" command. */
/* FIXME - we should preserve this value across freezing. See
http://lists.gnu.org/archive/html/bug-m4/2006-06/msg00059.html
@@ -483,7 +480,6 @@ M4BUILTIN_HANDLER (syscmd)
int status;
int sig_status;
const char *prog_args[4] = { "sh", "-c" };
- const char *shell = SYSCMD_SHELL;
if (m4_get_safer_opt (context))
{
@@ -502,12 +498,15 @@ M4BUILTIN_HANDLER (syscmd)
}
m4_sysval_flush (context, false);
#if W32_NATIVE
- shell = prog_args[0] = "cmd";
- prog_args[1] = "/c";
+ if (strstr (M4_SYSCMD_SHELL, "cmd"))
+ {
+ prog_args[0] = "cmd";
+ prog_args[1] = "/c";
+ }
#endif
prog_args[2] = cmd;
errno = 0;
- status = execute (m4_info_name (me), shell/*FIXME*/, (char **) prog_args,
+ status = execute (m4_info_name (me), M4_SYSCMD_SHELL, (char **) prog_args,
false, false, false, false, true, false, &sig_status);
if (sig_status)
{