diff options
Diffstat (limited to 'glib/gutils.c')
-rw-r--r-- | glib/gutils.c | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/glib/gutils.c b/glib/gutils.c index 50e7c361c..321a1311f 100644 --- a/glib/gutils.c +++ b/glib/gutils.c @@ -411,31 +411,33 @@ g_get_any_init (void) #endif /* NATIVE_WIN32 */ } -#ifdef NATIVE_WIN32 - /* The official way to specify a home directory on NT is - * the HOMEDRIVE and HOMEPATH environment variables. - * - * This is inside #ifdef NATIVE_WIN32 because with the cygwin dll, - * HOME should be a POSIX style pathname. - */ + if (!g_home_dir) + g_home_dir = g_strdup (g_getenv ("HOME")); - if (getenv ("HOMEDRIVE") != NULL && getenv ("HOMEPATH") != NULL) +#ifdef NATIVE_WIN32 + if (!g_home_dir) { - gchar *homedrive, *homepath; - - homedrive = g_strdup (g_getenv ("HOMEDRIVE")); - homepath = g_strdup (g_getenv ("HOMEPATH")); - - g_home_dir = g_strconcat (homedrive, homepath, NULL); - g_free (homedrive); - g_free (homepath); + /* The official way to specify a home directory on NT is + * the HOMEDRIVE and HOMEPATH environment variables. + * + * This is inside #ifdef NATIVE_WIN32 because with the cygwin dll, + * HOME should be a POSIX style pathname. + */ + + if (getenv ("HOMEDRIVE") != NULL && getenv ("HOMEPATH") != NULL) + { + gchar *homedrive, *homepath; + + homedrive = g_strdup (g_getenv ("HOMEDRIVE")); + homepath = g_strdup (g_getenv ("HOMEPATH")); + + g_home_dir = g_strconcat (homedrive, homepath, NULL); + g_free (homedrive); + g_free (homepath); + } } #endif /* !NATIVE_WIN32 */ - if (!g_home_dir) - g_home_dir = g_strdup (g_getenv ("HOME")); - - #ifdef HAVE_PWD_H { struct passwd *pw = NULL; |