SF.net SVN: geany: [1770] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sat Aug 4 16:25:13 UTC 2007


Revision: 1770
          http://geany.svn.sourceforge.net/geany/?rev=1770&view=rev
Author:   eht16
Date:     2007-08-04 09:25:13 -0700 (Sat, 04 Aug 2007)

Log Message:
-----------
Prevent loading the same plugin in different paths. 

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/plugins.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-08-04 08:33:56 UTC (rev 1769)
+++ trunk/ChangeLog	2007-08-04 16:25:13 UTC (rev 1770)
@@ -2,6 +2,7 @@
 
  * configure.in: Fix error in "make install" caused by old automake
                  versions and intltool.
+ * src/plugins.c: Prevent loading the same plugin in different paths.
 
 
 2007-08-03  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c	2007-08-04 08:33:56 UTC (rev 1769)
+++ trunk/src/plugins.c	2007-08-04 16:25:13 UTC (rev 1770)
@@ -161,16 +161,24 @@
 static gboolean
 plugin_loaded(GModule *module)
 {
-	const gchar *fname = g_module_name(module);
+	gchar *basename_module, *basename_loaded;
 	GList *item;
 
+	basename_module = g_path_get_basename(g_module_name(module));
 	for (item = plugin_list; item != NULL; item = g_list_next(item))
 	{
-		Plugin *p = item->data;
+		basename_loaded = g_path_get_basename(
+			g_module_name(((Plugin*)item->data)->module));
 
-		if (utils_str_equal(fname, g_module_name(p->module)))
+		if (utils_str_equal(basename_module, basename_loaded))
+		{
+			g_free(basename_loaded);
+			g_free(basename_module);
 			return TRUE;
+		}
+		g_free(basename_loaded);
 	}
+	g_free(basename_module);
 	return FALSE;
 }
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list