summaryrefslogtreecommitdiff
path: root/addressbook
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2015-04-22 21:15:20 +0200
committerMilan Crha <mcrha@redhat.com>2015-04-22 21:15:20 +0200
commitc7d4f0cf1a6ea27fa9563222393229766cd33fef (patch)
tree17204cf22de56cbae4f9de658296092908b513e1 /addressbook
parent0c834c5465ee684a71b28385da41dbbd0ea0b2eb (diff)
downloadevolution-data-server-c7d4f0cf1a6ea27fa9563222393229766cd33fef.tar.gz
Bug 705268 - Run 'make check' within the build tree
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/libedata-book/e-data-book-factory.c11
-rw-r--r--addressbook/libedata-book/e-data-book-factory.h8
2 files changed, 18 insertions, 1 deletions
diff --git a/addressbook/libedata-book/e-data-book-factory.c b/addressbook/libedata-book/e-data-book-factory.c
index 6722dcf7e..3dc45740a 100644
--- a/addressbook/libedata-book/e-data-book-factory.c
+++ b/addressbook/libedata-book/e-data-book-factory.c
@@ -98,6 +98,8 @@ data_book_complete_open (EDataFactory *data_factory,
data_book_factory->priv->dbus_factory, invocation, object_path, bus_name);
}
+static gchar *overwrite_subprocess_book_path = NULL;
+
static gboolean
data_book_factory_handle_open_address_book_cb (EDBusAddressBookFactory *iface,
GDBusMethodInvocation *invocation,
@@ -107,7 +109,8 @@ data_book_factory_handle_open_address_book_cb (EDBusAddressBookFactory *iface,
EDataFactory *data_factory = E_DATA_FACTORY (factory);
e_data_factory_spawn_subprocess_backend (
- data_factory, invocation, uid, E_SOURCE_EXTENSION_ADDRESS_BOOK, SUBPROCESS_BOOK_BACKEND_PATH);
+ data_factory, invocation, uid, E_SOURCE_EXTENSION_ADDRESS_BOOK,
+ overwrite_subprocess_book_path ? overwrite_subprocess_book_path : SUBPROCESS_BOOK_BACKEND_PATH);
return TRUE;
}
@@ -135,12 +138,18 @@ e_data_book_factory_class_init (EDataBookFactoryClass *class)
EDataFactoryClass *data_factory_class;
const gchar *modules_directory = BACKENDDIR;
const gchar *modules_directory_env;
+ const gchar *subprocess_book_path_env;
modules_directory_env = g_getenv (EDS_ADDRESS_BOOK_MODULES);
if (modules_directory_env &&
g_file_test (modules_directory_env, G_FILE_TEST_IS_DIR))
modules_directory = g_strdup (modules_directory_env);
+ subprocess_book_path_env = g_getenv (EDS_SUBPROCESS_BOOK_PATH);
+ if (subprocess_book_path_env &&
+ g_file_test (subprocess_book_path_env, G_FILE_TEST_IS_EXECUTABLE))
+ overwrite_subprocess_book_path = g_strdup (subprocess_book_path_env);
+
g_type_class_add_private (class, sizeof (EDataBookFactoryPrivate));
object_class = G_OBJECT_CLASS (class);
diff --git a/addressbook/libedata-book/e-data-book-factory.h b/addressbook/libedata-book/e-data-book-factory.h
index 68a1c3462..40a2988f0 100644
--- a/addressbook/libedata-book/e-data-book-factory.h
+++ b/addressbook/libedata-book/e-data-book-factory.h
@@ -53,6 +53,14 @@
*/
#define EDS_ADDRESS_BOOK_MODULES "EDS_ADDRESS_BOOK_MODULES"
+/**
+ * EDS_SUBPROCESS_BOOK_PATH:
+ *
+ * This environment variable configures where the address book
+ * factory subprocess is located in.
+ */
+#define EDS_SUBPROCESS_BOOK_PATH "EDS_SUBPROCESS_BOOK_PATH"
+
G_BEGIN_DECLS
typedef struct _EDataBookFactory EDataBookFactory;