[evolution] Ensure mail_session_get_cache/config/data_dir() return existing directories



commit 0ee8ac1157376aacfcb1b51c4143bc1bd3d3a5b7
Author: Milan Crha <mcrha redhat com>
Date:   Mon Nov 28 11:26:17 2016 +0100

    Ensure mail_session_get_cache/config/data_dir() return existing directories
    
    The shell_backend_get_config/data_dir() do it too, but the EMailBackend
    overrides these methods and the special implementations do not do it,
    thus when the evolution is run on a new account, then its console is
    full of related runtime warnings from EMailRemoteContent and EMailProperties.

 src/libemail-engine/e-mail-session.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/src/libemail-engine/e-mail-session.c b/src/libemail-engine/e-mail-session.c
index 8eb566f..4dd3eb9 100644
--- a/src/libemail-engine/e-mail-session.c
+++ b/src/libemail-engine/e-mail-session.c
@@ -2271,9 +2271,10 @@ mail_session_flush_filter_log (EMailSession *session)
 const gchar *
 mail_session_get_data_dir (void)
 {
-       if (G_UNLIKELY (mail_data_dir == NULL))
-               mail_data_dir = g_build_filename (
-                       e_get_user_data_dir (), "mail", NULL);
+       if (G_UNLIKELY (mail_data_dir == NULL)) {
+               mail_data_dir = g_build_filename (e_get_user_data_dir (), "mail", NULL);
+               g_mkdir_with_parents (mail_data_dir, 0700);
+       }
 
        return mail_data_dir;
 }
@@ -2281,9 +2282,10 @@ mail_session_get_data_dir (void)
 const gchar *
 mail_session_get_cache_dir (void)
 {
-       if (G_UNLIKELY (mail_cache_dir == NULL))
-               mail_cache_dir = g_build_filename (
-                       e_get_user_cache_dir (), "mail", NULL);
+       if (G_UNLIKELY (mail_cache_dir == NULL)) {
+               mail_cache_dir = g_build_filename (e_get_user_cache_dir (), "mail", NULL);
+               g_mkdir_with_parents (mail_cache_dir, 0700);
+       }
 
        return mail_cache_dir;
 }
@@ -2291,9 +2293,10 @@ mail_session_get_cache_dir (void)
 const gchar *
 mail_session_get_config_dir (void)
 {
-       if (G_UNLIKELY (mail_config_dir == NULL))
-               mail_config_dir = g_build_filename (
-                       e_get_user_config_dir (), "mail", NULL);
+       if (G_UNLIKELY (mail_config_dir == NULL)) {
+               mail_config_dir = g_build_filename (e_get_user_config_dir (), "mail", NULL);
+               g_mkdir_with_parents (mail_config_dir, 0700);
+       }
 
        return mail_config_dir;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]