Port: Use glib g_get_home_dir to get home dir on mingw
authorMichael Jeanson <mjeanson@efficios.com>
Fri, 13 Jan 2017 16:42:31 +0000 (11:42 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 9 Jun 2017 20:58:15 +0000 (16:58 -0400)
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
common/common.c

index b92fc89dd660aa85917c55071eedb996789986ce..975bf6ae068d2f5d7c6a48ca2146c1dd567e9cf0 100644 (file)
@@ -25,7 +25,6 @@
 #include <unistd.h>
 #include <string.h>
 #include <sys/types.h>
-#include <pwd.h>
 #include <unistd.h>
 #include <assert.h>
 #include <ctype.h>
 #include <babeltrace/common-internal.h>
 #include <babeltrace/compat/unistd-internal.h>
 
+#ifndef __MINGW32__
+#include <pwd.h>
+#endif
+
 #define SYSTEM_PLUGIN_PATH     INSTALL_LIBDIR "/babeltrace/plugins"
 #define HOME_ENV_VAR           "HOME"
 #define HOME_PLUGIN_SUBPATH    "/.local/lib/babeltrace/plugins"
@@ -95,7 +98,8 @@ bool bt_common_is_setuid_setgid(void)
        return (geteuid() != getuid() || getegid() != getgid());
 }
 
-static char *bt_secure_getenv(const char *name)
+static
+char *bt_secure_getenv(const char *name)
 {
        if (bt_common_is_setuid_setgid()) {
                printf_error("Disregarding %s environment variable for setuid/setgid binary",
@@ -105,7 +109,15 @@ static char *bt_secure_getenv(const char *name)
        return getenv(name);
 }
 
-static const char *get_home_dir(void)
+#ifdef __MINGW32__
+static
+const char *bt_get_home_dir(void)
+{
+       return g_get_home_dir();
+}
+#else /* __MINGW32__ */
+static
+const char *bt_get_home_dir(void)
 {
        char *val = NULL;
        struct passwd *pwd;
@@ -123,6 +135,7 @@ static const char *get_home_dir(void)
 end:
        return val;
 }
+#endif /* __MINGW32__ */
 
 BT_HIDDEN
 char *bt_common_get_home_plugin_path(void)
@@ -130,7 +143,7 @@ char *bt_common_get_home_plugin_path(void)
        char *path = NULL;
        const char *home_dir;
 
-       home_dir = get_home_dir();
+       home_dir = bt_get_home_dir();
        if (!home_dir) {
                goto end;
        }
This page took 0.028235 seconds and 4 git commands to generate.