2013-02-20 [colin] 3.9.0cvs93
authorColin Leroy <colin@colino.net>
Wed, 20 Feb 2013 15:21:48 +0000 (15:21 +0000)
committerColin Leroy <colin@colino.net>
Wed, 20 Feb 2013 15:21:48 +0000 (15:21 +0000)
* src/common/plugin.c
Auto fix plugin names ending in "_plugin"

ChangeLog
PATCHSETS
configure.ac
src/common/plugin.c

index ae821dd2b748eb2c4291ea4b70b13c223a7b79ae..d8f05b3268f14f45e91cb663b3372f483a3a71ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-20 [colin]     3.9.0cvs93
+
+       * src/common/plugin.c
+               Auto fix plugin names ending in "_plugin"
+
 2013-02-20 [colin]     3.9.0cvs92
 
        * src/plugins/gdata/Makefile.am
index 44bc7ea69e9c0543faff2c4c8fc408726cb2e420..ed3a8135a7c07e473804e4b3973c37be5efe1657 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.654.2.4666 -r 1.654.2.4667 configure.ac;  ) > 3.9.0cvs90.patchset
 ( cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/fetchinfo/Makefile.am;  cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/plugins/notification/Makefile.am;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/perl/Makefile.am;  cvs diff -u -r 1.1.2.4 -r 1.1.2.5 src/plugins/python/Makefile.am;  ) > 3.9.0cvs91.patchset
 ( cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/gdata/Makefile.am;  ) > 3.9.0cvs92.patchset
+( cvs diff -u -r 1.13.2.48 -r 1.13.2.49 src/common/plugin.c;  ) > 3.9.0cvs93.patchset
index 71ffeca8f76229c967afd70d3ea9a3aa111d0570..7c77ac300ee54775013894dbc0d80a404b9bd1d9 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=9
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=92
+EXTRA_VERSION=93
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 83db8e3382032e89bc9697bafc0259f2275e6fc7..762a89a584c831f582b991f3803bc426c6baa3be 100644 (file)
@@ -562,6 +562,28 @@ void plugin_unload(Plugin *plugin)
 
 }
 
+static void replace_old_plugin_name(gchar *plugin_name)
+{
+       gchar *old_name_end = g_strconcat("_plugin.", G_MODULE_SUFFIX, NULL);
+       gchar *matches = strstr(plugin_name, old_name_end);
+
+       if (!matches) {
+               g_free(old_name_end);
+               return;
+       } else if (plugin_name + strlen(plugin_name) != matches + strlen(matches)) {
+               g_free(old_name_end);
+               return;
+       } else {
+               gchar *new_name_end = g_strconcat(".", G_MODULE_SUFFIX, NULL);
+               int offset = strlen(plugin_name) - strlen(old_name_end);
+
+               debug_print("Replacing old plugin name %s\n", plugin_name);
+               
+               strncpy(plugin_name + offset, new_name_end, strlen(old_name_end) - 1);
+               debug_print(" to %s\n", plugin_name);
+       }
+}
+
 void plugin_load_all(const gchar *type)
 {
        gchar *rcpath;
@@ -591,6 +613,8 @@ void plugin_load_all(const gchar *type)
                        break;
 
                g_strstrip(buf);
+               replace_old_plugin_name(buf);
+
                if ((buf[0] != '\0') && (plugin_load(buf, &error) == NULL)) {
                        g_warning("plugin loading error: %s\n", error);
                        g_free(error);