summary refs log tree commit diff
path: root/gnu/packages/patches/pidgin-add-search-path.patch
blob: 00eb9e4ca65d2fc7b9ca1cb0d56ba5c5446a0b65 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Support the PURPLE_PLUGIN_PATH environment variable.  This patch is based on
one from Nixpkgs, but properly handles the case where that variable is unset.

--- pidgin-2.10.11/libpurple/plugin.c.orig	2014-11-23 11:41:25.000000000 -0500
+++ pidgin-2.10.11/libpurple/plugin.c	2015-08-04 14:31:02.257366144 -0400
@@ -1178,8 +1178,19 @@
 void
 purple_plugins_init(void) {
 	void *handle = purple_plugins_get_handle();
+	const gchar *purple_plugin_path;
 
 	purple_plugins_add_search_path(LIBDIR);
+	purple_plugin_path = g_getenv("PURPLE_PLUGIN_PATH");
+	if (purple_plugin_path && *purple_plugin_path) {
+		gchar **paths = g_strsplit(purple_plugin_path, ":", -1);
+		if (paths) {
+			gchar **p;
+			for (p = paths; *p; ++p)
+				if (**p) purple_plugins_add_search_path(*p);
+		}
+		g_strfreev(paths);
+	}
 
 	purple_signal_register(handle, "plugin-load",
 						 purple_marshal_VOID__POINTER,