From acf1cd63f23a947e57960738bfd0fe33a578cc44 Mon Sep 17 00:00:00 2001 From: djcb Date: Mon, 19 Mar 2012 20:53:18 +0200 Subject: [PATCH] * fix mu_util_guess_maildir, mu_util_guess_mu_homedir for freebsd --- src/mu-util.c | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/mu-util.c b/src/mu-util.c index ad8755d2..d69582e4 100644 --- a/src/mu-util.c +++ b/src/mu-util.c @@ -178,39 +178,46 @@ mu_util_check_dir (const gchar* path, gboolean readable, gboolean writeable) gchar* mu_util_guess_maildir (void) { - const gchar *mdir1; - gchar *mdir2; + const gchar *mdir1, *home; - /* first, try MAILDIR */ - mdir1 = g_getenv ("MAILDIR"); + /* first, try MAILDIR */ + mdir1 = g_getenv ("MAILDIR"); - if (mdir1 && mu_util_check_dir (mdir1, TRUE, FALSE)) - return g_strdup (mdir1); + if (mdir1 && mu_util_check_dir (mdir1, TRUE, FALSE)) + return g_strdup (mdir1); - /* then, try ~/Maildir */ - mdir2 = mu_util_dir_expand ("~/Maildir"); - if (mu_util_check_dir (mdir2, TRUE, FALSE)) - return mdir2; + /* then, try /Maildir */ + home = g_get_home_dir(); + if (home) { + char *mdir2; + mdir2 = g_strdup_printf ("%s%cMaildir", + home, G_DIR_SEPARATOR); + if (mu_util_check_dir (mdir2, TRUE, FALSE)) + return mdir2; + g_free (mdir2); + } - /* nope; nothing found */ - return NULL; + /* nope; nothing found */ + return NULL; } gchar* mu_util_guess_mu_homedir (void) { - const char* home; + const char* home; - /* g_get_home_dir use /etc/passwd, not $HOME; this is better, - * as HOME may be wrong when using 'sudo' etc.*/ - home = g_get_home_dir (); + /* g_get_home_dir use /etc/passwd, not $HOME; this is better, + * as HOME may be wrong when using 'sudo' etc.*/ + home = g_get_home_dir (); - if (!home) - MU_WRITE_LOG ("failed to determine homedir"); + if (!home) { + MU_WRITE_LOG ("failed to determine homedir"); + return NULL; + } - return g_strdup_printf ("%s%c%s", home ? home : ".", G_DIR_SEPARATOR, - ".mu"); + return g_strdup_printf ("%s%c%s", home ? home : ".", + G_DIR_SEPARATOR, ".mu"); } gboolean