aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/em-utils.c37
-rw-r--r--mail/em-utils.h3
-rw-r--r--mail/importers/mail-importer.c4
-rw-r--r--mail/mail-autofilter.c7
-rw-r--r--mail/mail-config.c5
-rw-r--r--mail/mail-folder-cache.c2
-rw-r--r--mail/mail-ops.c4
-rw-r--r--mail/mail-session.c17
-rw-r--r--mail/mail-session.h3
-rw-r--r--mail/mail-tools.c2
-rw-r--r--mail/mail-vfolder.c19
11 files changed, 44 insertions, 59 deletions
diff --git a/mail/em-utils.c b/mail/em-utils.c
index bf4357aff3..fd60db36fb 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -78,6 +78,7 @@
#include "em-composer-utils.h"
#include "em-format-quote.h"
#include "e-mail-local.h"
+#include "mail-session.h"
/* XXX This is a dirty hack on a dirty hack. We really need
* to rework or get rid of the functions that use this. */
@@ -91,38 +92,6 @@ static void emu_save_part_done (CamelMimePart *part, gchar *name, gint done, gpo
#define d(x)
-const gchar *
-em_utils_get_data_dir (void)
-{
- EShell *shell;
- EShellBackend *shell_backend;
-
- /* XXX This is a temporary solution until I can figure out a
- * better way. Ideally, nothing below the module layer
- * should need to know about the user data directory. */
- shell = e_shell_get_default ();
- shell_backend = e_shell_get_backend_by_name (
- shell, shell_builtin_backend);
-
- return e_shell_backend_get_data_dir (shell_backend);
-}
-
-const gchar *
-em_utils_get_config_dir (void)
-{
- EShell *shell;
- EShellBackend *shell_backend;
-
- /* XXX This is a temporary solution until I can figure out a
- * better way. Ideally, nothing below the module layer
- * should need to know about the user config directory. */
- shell = e_shell_get_default ();
- shell_backend = e_shell_get_backend_by_name (
- shell, shell_builtin_backend);
-
- return e_shell_backend_get_config_dir (shell_backend);
-}
-
gboolean
em_utils_ask_open_many (GtkWindow *parent,
gint how_many)
@@ -274,7 +243,7 @@ em_filter_editor_response (GtkWidget *dialog, gint button, gpointer user_data)
const gchar *data_dir;
gchar *user;
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
fc = g_object_get_data ((GObject *) dialog, "context");
user = g_strdup_printf ("%s/filters.xml", data_dir);
e_rule_context_save ((ERuleContext *) fc, user);
@@ -312,7 +281,7 @@ em_utils_edit_filters (GtkWidget *parent)
return;
}
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
fc = em_filter_context_new ();
user = g_build_filename (data_dir, "filters.xml", NULL);
diff --git a/mail/em-utils.h b/mail/em-utils.h
index db2a7c6952..ae8e2f5f10 100644
--- a/mail/em-utils.h
+++ b/mail/em-utils.h
@@ -38,9 +38,6 @@ G_BEGIN_DECLS
struct _EMFormat;
-const gchar * em_utils_get_data_dir (void);
-const gchar * em_utils_get_config_dir (void);
-
gboolean em_utils_ask_open_many (GtkWindow *parent, gint how_many);
gboolean em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag, const gchar *arg0, ...);
diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c
index 6e4573487f..ee1c958d12 100644
--- a/mail/importers/mail-importer.c
+++ b/mail/importers/mail-importer.c
@@ -50,7 +50,7 @@
#include "mail-mt.h"
#include "mail-tools.h"
#include "e-mail-local.h"
-#include "em-utils.h"
+#include "mail-session.h"
#include "mail-importer.h"
@@ -292,7 +292,7 @@ import_folders_rec(struct _import_folders_data *m, const gchar *filepath, const
if (dir == NULL)
return;
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
utf8_filename = g_filename_to_utf8 (filepath, -1, NULL, NULL, NULL);
camel_operation_start(NULL, _("Scanning %s"), utf8_filename);
diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c
index bbb3694ee8..8117bfca6a 100644
--- a/mail/mail-autofilter.c
+++ b/mail/mail-autofilter.c
@@ -32,6 +32,7 @@
#include "mail-vfolder.h"
#include "mail-autofilter.h"
+#include "mail-session.h"
#include "em-utils.h"
#include "e-util/e-alert-dialog.h"
#include "e-util/e-util-private.h"
@@ -352,7 +353,7 @@ filter_gui_add_from_message (CamelMimeMessage *msg, const gchar *source, gint fl
g_return_if_fail (msg != NULL);
fc = em_filter_context_new ();
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "filters.xml", NULL);
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
e_rule_context_load ((ERuleContext *)fc, system, user);
@@ -380,7 +381,7 @@ mail_filter_rename_uri(CamelStore *store, const gchar *olduri, const gchar *newu
enewuri = em_uri_from_camel(newuri);
fc = em_filter_context_new ();
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "filters.xml", NULL);
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
e_rule_context_load ((ERuleContext *)fc, system, user);
@@ -413,7 +414,7 @@ mail_filter_delete_uri(CamelStore *store, const gchar *uri)
euri = em_uri_from_camel(uri);
fc = em_filter_context_new ();
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "filters.xml", NULL);
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
e_rule_context_load ((ERuleContext *)fc, system, user);
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 41ac85a373..be2125bcc0 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -59,7 +59,6 @@
#include <libedataserverui/e-passwords.h>
#include "e-mail-local.h"
-#include "em-utils.h"
#include "mail-config.h"
#include "mail-folder-cache.h"
#include "mail-mt.h"
@@ -441,7 +440,7 @@ uri_to_evname (const gchar *uri, const gchar *prefix)
gchar *safe;
gchar *tmp;
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
safe = g_strdup (uri);
e_filename_make_safe (safe);
@@ -573,7 +572,7 @@ mail_config_folder_to_cachename (CamelFolder *folder, const gchar *prefix)
gchar *url, *basename, *filename;
const gchar *config_dir;
- config_dir = em_utils_get_config_dir ();
+ config_dir = mail_session_get_config_dir ();
url = mail_config_folder_to_safe_url (folder);
basename = g_strdup_printf ("%s%s", prefix, url);
filename = g_build_filename (config_dir, basename, NULL);
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index f43e16e7b8..5bf5be4bbd 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -701,7 +701,7 @@ rename_folders(MailFolderCache *self, struct _store_info *si, const gchar *oldba
#endif
/* rename the meta-data we maintain ourselves */
- config_dir = em_utils_get_config_dir ();
+ config_dir = mail_session_get_config_dir ();
olduri = folder_to_url(si->store, old);
e_filename_make_safe(olduri);
newuri = folder_to_url(si->store, fi->full_name);
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 8110ab48db..e07fe19a67 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -256,7 +256,7 @@ uid_cachename_hack (CamelStore *store)
url->host);
e_filename_make_safe (encoded_url);
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
filename = g_build_filename (data_dir, "pop", encoded_url, "uid-cache", NULL);
g_free (encoded_url);
@@ -1796,7 +1796,7 @@ empty_trash_exec (struct _empty_trash_msg *m)
if (m->account) {
trash = mail_tool_get_trash (m->account->source->url, FALSE, &m->base.ex);
} else {
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
uri = g_strdup_printf ("mbox:%s/local", data_dir);
trash = mail_tool_get_trash (uri, TRUE, &m->base.ex);
g_free (uri);
diff --git a/mail/mail-session.c b/mail/mail-session.c
index b7b26bf8dc..e9ad274839 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -834,3 +834,20 @@ mail_session_set_junk_headers (const gchar **name, const gchar **value, gint len
camel_session_set_junk_headers (session, name, value, len);
}
+
+const gchar *
+mail_session_get_data_dir (void)
+{
+ g_return_val_if_fail (session_shell_backend, NULL);
+
+ return e_shell_backend_get_data_dir (session_shell_backend);
+}
+
+const gchar *
+mail_session_get_config_dir (void)
+{
+ g_return_val_if_fail (session_shell_backend, NULL);
+
+ return e_shell_backend_get_config_dir (session_shell_backend);
+}
+
diff --git a/mail/mail-session.h b/mail/mail-session.h
index b1274403c0..ccca89d199 100644
--- a/mail/mail-session.h
+++ b/mail/mail-session.h
@@ -50,6 +50,9 @@ void mail_session_add_junk_plugin (const gchar *plugin_name, CamelJunkPlugin *ju
const GList * mail_session_get_junk_plugins (void);
void mail_session_set_junk_headers (const gchar **name, const gchar **value, gint len);
+const gchar * mail_session_get_data_dir (void);
+const gchar * mail_session_get_config_dir (void);
+
extern CamelSession *session;
G_END_DECLS
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index 45f502ecf0..53bf2be0c6 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -129,7 +129,7 @@ mail_tool_get_local_movemail_path (const guchar *uri, CamelException *ex)
if (strchr("/:;=|%&#!*^()\\, ", *c) || !isprint((gint) *c))
*c = '_';
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
path = g_build_filename (data_dir, "spool", NULL);
if (g_stat(path, &st) == -1 && g_mkdir_with_parents(path, 0777) == -1) {
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index b4a8330776..6301e5ff5e 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -46,6 +46,7 @@
#include "mail-folder-cache.h"
#include "mail-mt.h"
#include "mail-ops.h"
+#include "mail-session.h"
#include "mail-tools.h"
#include "mail-vfolder.h"
@@ -66,8 +67,6 @@ static GHashTable *vfolder_hash;
/* This is a slightly hacky solution to shutting down, we poll this variable in various
loops, and just quit processing if it is set. */
static volatile gint shutdown; /* are we shutting down? */
-/* more globals ... */
-extern CamelSession *session;
static void rule_changed(EFilterRule *rule, CamelFolder *folder);
@@ -667,7 +666,7 @@ done:
dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:vfolder-updated", changed->str, uri, NULL);
em_utils_show_info_silent (dialog);
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_save ((ERuleContext *) context, user);
g_free (user);
@@ -735,7 +734,7 @@ mail_vfolder_rename_uri(CamelStore *store, const gchar *cfrom, const gchar *cto)
gchar *user;
d(printf("Vfolders updated from renamed folder\n"));
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_save((ERuleContext *)context, user);
g_free(user);
@@ -914,7 +913,7 @@ store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
g_object_unref(rule);
g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context);
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_save((ERuleContext *)context, user);
g_free(user);
@@ -960,7 +959,7 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
e_filter_rule_set_name(rule, info->new->full_name);
g_signal_connect(rule, "changed", G_CALLBACK(rule_changed), folder);
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_save((ERuleContext *)context, user);
g_free(user);
@@ -1021,7 +1020,7 @@ vfolder_load_storage(void)
G_UNLOCK (vfolder_hash);
/* first, create the vfolder store, and set it up */
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
storeuri = g_strdup_printf("vfolder:%s/vfolder", data_dir);
vfolder_store = camel_session_get_store(session, storeuri, NULL);
if (vfolder_store == NULL) {
@@ -1091,7 +1090,7 @@ vfolder_revert(void)
gchar *user;
d(printf("vfolder_revert\n"));
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_revert((ERuleContext *)context, user);
g_free(user);
@@ -1145,7 +1144,7 @@ edit_rule_response(GtkWidget *w, gint button, gpointer data)
EFilterRule *orig = g_object_get_data (G_OBJECT (w), "orig");
e_filter_rule_copy(orig, rule);
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_save((ERuleContext *)context, user);
g_free(user);
@@ -1222,7 +1221,7 @@ new_rule_clicked(GtkWidget *w, gint button, gpointer data)
g_object_ref(rule);
e_rule_context_add_rule((ERuleContext *)context, rule);
- data_dir = em_utils_get_data_dir ();
+ data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
e_rule_context_save((ERuleContext *)context, user);
g_free(user);