aboutsummaryrefslogtreecommitdiff
path: root/jim-exec.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2018-07-08 22:36:56 +1000
committerSteve Bennett <steveb@workware.net.au>2018-07-08 22:36:56 +1000
commit415044416aa9348a1c668e9aba9c260f6a83bee8 (patch)
tree5846068078de7d04d5afd1a58d7e0422eecef0c9 /jim-exec.c
parent98d44a6b727af92fb5bc3da7c0a186888ed54ad7 (diff)
downloadjimtcl-415044416aa9348a1c668e9aba9c260f6a83bee8.zip
jimtcl-415044416aa9348a1c668e9aba9c260f6a83bee8.tar.gz
jimtcl-415044416aa9348a1c668e9aba9c260f6a83bee8.tar.bz2
exec: Fix environment for windows
The incorrect environment was used in 8f7471a0f Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-exec.c')
-rw-r--r--jim-exec.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/jim-exec.c b/jim-exec.c
index 2e77a21..ff3ac91 100644
--- a/jim-exec.c
+++ b/jim-exec.c
@@ -724,7 +724,7 @@ JimCreatePipeline(Jim_Interp *interp, int argc, Jim_Obj *const *argv, pidtype **
int lastBar;
int i;
pidtype pid;
- char **save_environ, **child_environ;
+ char **save_environ;
struct WaitInfoTable *table = Jim_CmdPrivData(interp);
/* Holds the args which will be used to exec */
@@ -843,7 +843,6 @@ badargs:
/* Must do this before vfork(), so do it now */
save_environ = JimSaveEnv(JimBuildEnv(interp));
- child_environ = Jim_GetEnviron();
/*
* Set up the redirected input source for the pipeline, if
@@ -1030,7 +1029,7 @@ badargs:
/* Now fork the child */
#ifdef __MINGW32__
- pid = JimStartWinProcess(interp, &arg_array[firstArg], child_environ, inputId, outputId, errorId);
+ pid = JimStartWinProcess(interp, &arg_array[firstArg], save_environ, inputId, outputId, errorId);
if (pid == JIM_BAD_PID) {
Jim_SetResultFormatted(interp, "couldn't exec \"%s\"", arg_array[firstArg]);
goto error;
@@ -1079,7 +1078,7 @@ badargs:
/* Restore SIGPIPE behaviour */
(void)signal(SIGPIPE, SIG_DFL);
- execvpe(arg_array[firstArg], &arg_array[firstArg], child_environ);
+ execvpe(arg_array[firstArg], &arg_array[firstArg], save_environ);
if (write(fileno(stderr), "couldn't exec \"", 15) &&
write(fileno(stderr), arg_array[firstArg], i) &&