diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/env.c | 4 | ||||
-rw-r--r-- | win32/process.c | 13 |
2 files changed, 8 insertions, 9 deletions
diff --git a/win32/env.c b/win32/env.c index 4d4e9c8fd..8e54c4c5e 100644 --- a/win32/env.c +++ b/win32/env.c | |||
@@ -100,6 +100,10 @@ int mingw_putenv(const char *env) | |||
100 | break; | 100 | break; |
101 | } | 101 | } |
102 | } | 102 | } |
103 | |||
104 | /* tell the OS environment about the change */ | ||
105 | envstr[s - env] = '\0'; | ||
106 | SetEnvironmentVariable(envstr, ""); | ||
103 | free(envstr); | 107 | free(envstr); |
104 | } | 108 | } |
105 | 109 | ||
diff --git a/win32/process.c b/win32/process.c index 5978226f0..d4ab07ad8 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -345,32 +345,27 @@ mingw_spawnvp(int mode, const char *cmd, char *const *argv) | |||
345 | { | 345 | { |
346 | char *prog; | 346 | char *prog; |
347 | intptr_t ret; | 347 | intptr_t ret; |
348 | #if !defined(_UCRT) | ||
349 | char *const *envp = environ; | ||
350 | #else | ||
351 | char *const *envp = NULL; | ||
352 | #endif | ||
353 | 348 | ||
354 | #if ENABLE_FEATURE_PREFER_APPLETS && NUM_APPLETS > 1 | 349 | #if ENABLE_FEATURE_PREFER_APPLETS && NUM_APPLETS > 1 |
355 | if (find_applet_by_name(cmd) >= 0) | 350 | if (find_applet_by_name(cmd) >= 0) |
356 | return mingw_spawn_applet(mode, argv, envp); | 351 | return mingw_spawn_applet(mode, argv, NULL); |
357 | else | 352 | else |
358 | #endif | 353 | #endif |
359 | if (has_path(cmd)) { | 354 | if (has_path(cmd)) { |
360 | char *path = alloc_system_drive(cmd); | 355 | char *path = alloc_system_drive(cmd); |
361 | add_win32_extension(path); | 356 | add_win32_extension(path); |
362 | ret = mingw_spawn_interpreter(mode, path, argv, envp, 0); | 357 | ret = mingw_spawn_interpreter(mode, path, argv, NULL, 0); |
363 | free(path); | 358 | free(path); |
364 | #if ENABLE_FEATURE_PREFER_APPLETS && NUM_APPLETS > 1 | 359 | #if ENABLE_FEATURE_PREFER_APPLETS && NUM_APPLETS > 1 |
365 | if (ret == -1 && unix_path(cmd) && | 360 | if (ret == -1 && unix_path(cmd) && |
366 | find_applet_by_name(bb_basename(cmd)) >= 0) { | 361 | find_applet_by_name(bb_basename(cmd)) >= 0) { |
367 | return mingw_spawn_applet(mode, argv, envp); | 362 | return mingw_spawn_applet(mode, argv, NULL); |
368 | } | 363 | } |
369 | #endif | 364 | #endif |
370 | return ret; | 365 | return ret; |
371 | } | 366 | } |
372 | else if ((prog=find_first_executable(cmd)) != NULL) { | 367 | else if ((prog=find_first_executable(cmd)) != NULL) { |
373 | ret = mingw_spawn_interpreter(mode, prog, argv, envp, 0); | 368 | ret = mingw_spawn_interpreter(mode, prog, argv, NULL, 0); |
374 | free(prog); | 369 | free(prog); |
375 | return ret; | 370 | return ret; |
376 | } | 371 | } |