From ed98ca730773737e0e87e8e0a7984151adbd7805 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Wed, 20 Feb 2013 02:32:37 +0100 Subject: Windows (MinGW) compatibility fixes: suspending impossible and environment initialization revised * g_get_environ() appears to be broken, at least in Wine and Win2k --- src/main.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 47cd77f..f7ce9a1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -168,25 +168,24 @@ process_options(int &argc, char **&argv) static inline void initialize_environment(void) { - gchar **environ; + gchar **env; g_setenv("SCITECOPATH", DEFAULT_SCITECOPATH, FALSE); - environ = g_get_environ(); + env = g_listenv(); - for (gchar **p = environ; *p; p++) { - gchar *value = strchr(*p, '=') + 1; - gchar name[value - *p + 1]; + for (gchar **key = env; *key; key++) { + gchar name[1 + strlen(*key) + 1]; QRegister *reg; name[0] = '$'; - g_strlcpy(name + 1, *p, sizeof(name) - 1); + strcpy(name + 1, *key); reg = QRegisters::globals.insert(name); - reg->set_string(value); + reg->set_string(g_getenv(*key)); } - g_strfreev(environ); + g_strfreev(env); } int -- cgit v1.2.3