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