aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/local/camel-local-provider.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers/local/camel-local-provider.c')
-rw-r--r--camel/providers/local/camel-local-provider.c67
1 files changed, 52 insertions, 15 deletions
diff --git a/camel/providers/local/camel-local-provider.c b/camel/providers/local/camel-local-provider.c
index ba765ff20c..bae68e6aa7 100644
--- a/camel/providers/local/camel-local-provider.c
+++ b/camel/providers/local/camel-local-provider.c
@@ -38,6 +38,11 @@
#define d(x)
+static CamelProviderConfEntry mh_conf_entries[] = {
+ CAMEL_PROVIDER_CONF_DEFAULT_PATH,
+ { CAMEL_PROVIDER_CONF_END }
+};
+
static CamelProvider mh_provider = {
"mh",
N_("MH-format mail directories"),
@@ -45,9 +50,15 @@ static CamelProvider mh_provider = {
"mail",
CAMEL_PROVIDER_IS_LOCAL,
CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE,
+ mh_conf_entries,
/* ... */
};
+static CamelProviderConfEntry mbox_conf_entries[] = {
+ CAMEL_PROVIDER_CONF_DEFAULT_PATH,
+ { CAMEL_PROVIDER_CONF_END }
+};
+
static CamelProvider mbox_provider = {
"mbox",
N_("Local delivery"),
@@ -55,10 +66,12 @@ static CamelProvider mbox_provider = {
"mail",
CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_LOCAL,
CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE,
+ mbox_conf_entries,
/* ... */
};
-static CamelProviderConfEntry local_conf_entries[] = {
+static CamelProviderConfEntry maildir_conf_entries[] = {
+ CAMEL_PROVIDER_CONF_DEFAULT_PATH,
{ CAMEL_PROVIDER_CONF_CHECKBOX, "filter", NULL,
N_("Apply filters to new messages in INBOX"), "0" },
{ CAMEL_PROVIDER_CONF_END }
@@ -71,10 +84,17 @@ static CamelProvider maildir_provider = {
"mail",
CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_IS_LOCAL,
CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE,
- local_conf_entries,
+ maildir_conf_entries,
/* ... */
};
+static CamelProviderConfEntry spool_conf_entries[] = {
+ CAMEL_PROVIDER_CONF_DEFAULT_PATH,
+ { CAMEL_PROVIDER_CONF_CHECKBOX, "filter", NULL,
+ N_("Apply filters to new messages in INBOX"), "0" },
+ { CAMEL_PROVIDER_CONF_END }
+};
+
static CamelProvider spool_provider = {
"spool",
N_("Standard Unix mbox spools"),
@@ -82,10 +102,15 @@ static CamelProvider spool_provider = {
"mail",
CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE,
CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE,
- local_conf_entries,
+ spool_conf_entries,
/* ... */
};
+static CamelProviderConfEntry spoold_conf_entries[] = {
+ CAMEL_PROVIDER_CONF_DEFAULT_PATH,
+ { CAMEL_PROVIDER_CONF_END }
+};
+
static CamelProvider spoold_provider = {
"spoold",
N_("Directory tree of mbox files"),
@@ -93,6 +118,7 @@ static CamelProvider spoold_provider = {
"mail",
CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_IS_LOCAL,
CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE,
+ spoold_conf_entries,
/* ... */
};
@@ -180,27 +206,38 @@ local_url_equal(const void *v, const void *v2)
void camel_provider_module_init(CamelSession * session)
{
- mh_provider.object_types[CAMEL_PROVIDER_STORE] = camel_mh_store_get_type();
+ char *path;
+
+ mh_conf_entries[0].value = ""; /* default path */
+ mh_provider.object_types[CAMEL_PROVIDER_STORE] = camel_mh_store_get_type ();
mh_provider.url_hash = local_url_hash;
mh_provider.url_equal = local_url_equal;
camel_session_register_provider(session, &mh_provider);
-
- mbox_provider.object_types[CAMEL_PROVIDER_STORE] = camel_mbox_store_get_type();
+
+ if (!(path = getenv ("MAIL")))
+ path = g_strdup_printf (SYSTEM_MAIL_DIR "/%s", g_get_user_name ());
+ mbox_conf_entries[0].value = path; /* default path */
+ mbox_provider.object_types[CAMEL_PROVIDER_STORE] = camel_mbox_store_get_type ();
mbox_provider.url_hash = local_url_hash;
mbox_provider.url_equal = local_url_equal;
camel_session_register_provider(session, &mbox_provider);
-
- maildir_provider.object_types[CAMEL_PROVIDER_STORE] = camel_maildir_store_get_type();
- maildir_provider.url_hash = local_url_hash;
- maildir_provider.url_equal = local_url_equal;
- camel_session_register_provider(session, &maildir_provider);
-
- spool_provider.object_types[CAMEL_PROVIDER_STORE] = camel_spool_store_get_type();
+
+ spool_conf_entries[0].value = path; /* default path - same as mbox */
+ spool_provider.object_types[CAMEL_PROVIDER_STORE] = camel_spool_store_get_type ();
spool_provider.url_hash = local_url_hash;
spool_provider.url_equal = local_url_equal;
camel_session_register_provider(session, &spool_provider);
-
- spoold_provider.object_types[CAMEL_PROVIDER_STORE] = camel_spoold_store_get_type();
+
+ path = getenv ("MAILDIR");
+ maildir_conf_entries[0].value = path ? path : ""; /* default path */
+ maildir_provider.object_types[CAMEL_PROVIDER_STORE] = camel_maildir_store_get_type ();
+ maildir_provider.url_hash = local_url_hash;
+ maildir_provider.url_equal = local_url_equal;
+ camel_session_register_provider(session, &maildir_provider);
+
+ path = g_strdup_printf ("%s/mail", g_get_home_dir ());
+ spoold_conf_entries[0].value = path; /* default path */
+ spoold_provider.object_types[CAMEL_PROVIDER_STORE] = camel_spoold_store_get_type ();
spoold_provider.url_hash = local_url_hash;
spoold_provider.url_equal = local_url_equal;
camel_session_register_provider(session, &spoold_provider);