From 32dda4af9bc7d9e23f8dc6722d26609e4714a470 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 5 Apr 2012 07:07:10 +0000 Subject: cygwin should use SetEnvironmentVariable for windows env --- generic/tclEnv.c | 23 ++++++----------------- generic/tclPort.h | 7 +++++-- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/generic/tclEnv.c b/generic/tclEnv.c index a516cce..24fa106 100644 --- a/generic/tclEnv.c +++ b/generic/tclEnv.c @@ -45,11 +45,8 @@ MODULE_SCOPE void TclSetEnv(const char *name, const char *value); MODULE_SCOPE void TclUnsetEnv(const char *name); #if defined(__CYGWIN__) -/* On Cygwin, the environment is imported from the Cygwin DLL. */ - DLLIMPORT extern int cygwin_posix_to_win32_path_list_buf_size(char *value); - DLLIMPORT extern void cygwin_posix_to_win32_path_list(char *buf, char *value); -# define putenv TclCygwinPutenv -static void TclCygwinPutenv(char *string); + static void TclCygwinPutenv(char *string); +# define putenv TclCygwinPutenv #endif /* @@ -753,15 +750,11 @@ TclCygwinPutenv( */ if (strcmp(name, "Path") == 0) { -#ifdef __WIN32__ - SetEnvironmentVariable("PATH", NULL); -#endif + SetEnvironmentVariableA("PATH", NULL); unsetenv("PATH"); } -#ifdef __WIN32__ - SetEnvironmentVariable(name, value); -#endif + SetEnvironmentVariableA(name, value); } else { char *buf; @@ -769,9 +762,7 @@ TclCygwinPutenv( * Eliminate any Path variable, to prevent any confusion. */ -#ifdef __WIN32__ - SetEnvironmentVariable("Path", NULL); -#endif + SetEnvironmentVariableA("Path", NULL); unsetenv("Path"); if (value == NULL) { @@ -784,9 +775,7 @@ TclCygwinPutenv( cygwin_posix_to_win32_path_list(value, buf); } -#ifdef __WIN32__ - SetEnvironmentVariable(name, buf); -#endif + SetEnvironmentVariableA(name, buf); } } #endif /* __CYGWIN__ */ diff --git a/generic/tclPort.h b/generic/tclPort.h index 23c6191..79bea88 100644 --- a/generic/tclPort.h +++ b/generic/tclPort.h @@ -29,10 +29,13 @@ # define USE_PUTENV 1 # define USE_PUTENV_FOR_UNSET 1 /* On Cygwin, the environment is imported from the Cygwin DLL. */ - DLLIMPORT extern char **__cygwin_environ; - DLLIMPORT extern int cygwin_conv_to_win32_path(const char *, char *); # define environ __cygwin_environ # define timezone _timezone + DLLIMPORT extern char **__cygwin_environ; + DLLIMPORT extern int cygwin_conv_to_win32_path(const char *, char *); + DLLIMPORT extern int cygwin_posix_to_win32_path_list_buf_size(char *value); + DLLIMPORT extern void cygwin_posix_to_win32_path_list(char *buf, char *value); + DLLIMPORT extern void __stdcall SetEnvironmentVariableA(const char*, const char *); #endif #if !defined(LLONG_MIN) -- cgit v0.12