From bfbfbec91e10ea7f34e43a5d263031abb914dec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Mon, 9 Jul 2012 04:12:02 +0200 Subject: win32: g_getenv() should return "" if variable exists and empty On Windows, GetEnvironmentVariable() returns 0 for empty variables. Checking GetLastError() == ERROR_ENVVAR_NOT_FOUND helps make a difference between a variable that does not exist or an empty one which should return "". https://bugzilla.gnome.org/show_bug.cgi?id=679617 --- glib/genviron.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/glib/genviron.c b/glib/genviron.c index 4abf77676..aed4b6310 100644 --- a/glib/genviron.c +++ b/glib/genviron.c @@ -466,7 +466,11 @@ g_getenv (const gchar *variable) if (len == 0) { g_free (wname); - return NULL; + if (GetLastError () == ERROR_ENVVAR_NOT_FOUND) + return NULL; + + quark = g_quark_from_static_string (""); + return g_quark_to_string (quark); } else if (len == 1) len = 2; -- cgit v1.2.1