summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-07-09 04:12:02 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-07-16 12:49:25 +0200
commitbfbfbec91e10ea7f34e43a5d263031abb914dec6 (patch)
treebe02f551172c48ce1b4ae4194d2ac283fcc2ea3b
parent6007a4b0b109855f8521ba93ed10b3a1d2bf77f2 (diff)
downloadglib-bfbfbec91e10ea7f34e43a5d263031abb914dec6.tar.gz
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
-rw-r--r--glib/genviron.c6
1 files changed, 5 insertions, 1 deletions
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;