[evolution-data-server] Make the Camel provider modules relocatable
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Make the Camel provider modules relocatable
- Date: Mon, 25 Feb 2013 10:38:01 +0000 (UTC)
commit 85afb581c3e5253e77c906c175a93dee5f7705b3
Author: Tristan Van Berkom <tristanvb openismus com>
Date: Mon Feb 25 19:28:04 2013 +0900
Make the Camel provider modules relocatable
This simply adds an environment variable allowing us to load the local
provider from a relocated location in the case we run 'make check' without
installing (this avoids some warnings and helps to isolate the test
environment).
camel/camel-provider.c | 11 ++++++++---
camel/camel-provider.h | 8 ++++++++
2 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/camel/camel-provider.c b/camel/camel-provider.c
index 807ba0b..a23be5b 100644
--- a/camel/camel-provider.c
+++ b/camel/camel-provider.c
@@ -172,6 +172,11 @@ camel_provider_init (void)
gchar *p, *name, buf[80];
CamelProviderModule *m;
static gint loaded = 0;
+ const gchar *provider_dir;
+
+ provider_dir = g_getenv (EDS_CAMEL_PROVIDER_DIR);
+ if (!provider_dir)
+ provider_dir = CAMEL_PROVIDERDIR;
g_once (&setup_once, provider_setup, NULL);
@@ -180,11 +185,11 @@ camel_provider_init (void)
loaded = 1;
- dir = g_dir_open (CAMEL_PROVIDERDIR, 0, NULL);
+ dir = g_dir_open (provider_dir, 0, NULL);
if (!dir) {
g_warning (
"Could not open camel provider directory (%s): %s",
- CAMEL_PROVIDERDIR, g_strerror (errno));
+ provider_dir, g_strerror (errno));
return;
}
@@ -195,7 +200,7 @@ camel_provider_init (void)
if (!p || strcmp (p, ".urls") != 0)
continue;
- name = g_strdup_printf ("%s/%s", CAMEL_PROVIDERDIR, entry);
+ name = g_strdup_printf ("%s/%s", provider_dir, entry);
fp = g_fopen (name, "r");
if (!fp) {
g_warning (
diff --git a/camel/camel-provider.h b/camel/camel-provider.h
index 4924256..9bb49e0 100644
--- a/camel/camel-provider.h
+++ b/camel/camel-provider.h
@@ -38,6 +38,14 @@
#define CAMEL_PROVIDER(obj) ((CamelProvider *)(obj))
+/**
+ * EDS_CAMEL_PROVIDER_DIR:
+ *
+ * This environment variable configures where the camel
+ * provider modules are loaded from.
+ */
+#define EDS_CAMEL_PROVIDER_DIR "EDS_CAMEL_PROVIDER_DIR"
+
G_BEGIN_DECLS
extern gchar *camel_provider_type_name[CAMEL_NUM_PROVIDER_TYPES];
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]