aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/camel-provider.h4
-rw-r--r--camel/providers/local/camel-local-provider.c67
3 files changed, 62 insertions, 16 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 82c65ff49e..207b49cfe0 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,6 +1,11 @@
2002-04-24 Jeffrey Stedfast <fejj@ximian.com>
- * camel-provider.h: Add a CAMEL_PROVIDER_CONF_LABEL enum.
+ * providers/local/camel-local-provider.c
+ (camel_provider_module_init): Configure the default paths for mh,
+ mbox, maildir, spools, etc.
+
+ * camel-provider.h: Add a CAMEL_PROVIDER_CONF_LABEL enum and
+ define some default CamelProviderConfEntry macros.
2002-04-19 Jeffrey Stedfast <fejj@ximian.com>
diff --git a/camel/camel-provider.h b/camel/camel-provider.h
index bd1b2dedfd..dd2bd98329 100644
--- a/camel/camel-provider.h
+++ b/camel/camel-provider.h
@@ -123,6 +123,10 @@ typedef struct {
} CamelProviderConfEntry;
+/* Some defaults */
+#define CAMEL_PROVIDER_CONF_DEFAULT_USERNAME { CAMEL_PROVIDER_CONF_LABEL, "username", NULL, N_("User_name:"), NULL }
+#define CAMEL_PROVIDER_CONF_DEFAULT_HOSTNAME { CAMEL_PROVIDER_CONF_LABEL, "hostname", NULL, N_("_Host:"), NULL }
+#define CAMEL_PROVIDER_CONF_DEFAULT_PATH { CAMEL_PROVIDER_CONF_ENTRY, "path", NULL, N_("_Path:"), "" }
typedef struct {
/* Provider name used in CamelURLs. */
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);