kernel32: Use __wine_main_environ by default, environ is broken on FreeBSD too.
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 0dd7f67..286f0ab 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -58,9 +58,9 @@
#ifdef __APPLE__
extern char **__wine_get_main_environment(void);
-#define environ __wine_get_main_environment()
#else
-extern char **environ;
+extern char **__wine_main_environ;
+static char **__wine_get_main_environment(void) { return __wine_main_environ; }
#endif
typedef struct
@@ -280,9 +280,10 @@
char **e;
WCHAR *p, *endptr;
void *ptr;
+ char **env = __wine_get_main_environment();
/* Compute the total size of the Unix environment */
- for (e = environ; *e; e++)
+ for (e = env; *e; e++)
{
if (is_special_env_var( *e )) continue;
size += MultiByteToWideChar( CP_UNIXCP, 0, *e, -1, NULL, 0 );
@@ -299,7 +300,7 @@
endptr = p + size / sizeof(WCHAR);
/* And fill it with the Unix environment */
- for (e = environ; *e; e++)
+ for (e = env; *e; e++)
{
char *str = *e;