# HG changeset patch # User Daniel Atallah # Date 1142831186 0 # Node ID 33dc57ccbd83c9f564beefc9694ff4e9c0dc5186 # Parent e79d8720de34bb4c27d3475e5ef1d0fd231e3dbe [gaim-migrate @ 15903] Prevent plugins that have more than one period in the name from being duplicated with every probe. committer: Tailor Script diff -r e79d8720de34 -r 33dc57ccbd83 src/plugin.c --- a/src/plugin.c Mon Mar 20 03:42:12 2006 +0000 +++ b/src/plugin.c Mon Mar 20 05:06:26 2006 +0000 @@ -1208,6 +1208,7 @@ continue; filename = f->data; + /* * We don't know if the filename uses Windows or Unix path * separators (because people might be sharing a prefs.xml @@ -1220,6 +1221,9 @@ if (basename != NULL) basename++; + /* Strip the extension */ + basename = gaim_plugin_get_basename(basename); + if ((plugin = gaim_plugins_find_with_filename(filename)) != NULL) { gaim_debug_info("plugins", "Loading saved plugin %s\n", @@ -1238,6 +1242,8 @@ filename); } + g_free(basename); + g_free(f->data); } @@ -1496,30 +1502,25 @@ #ifdef GAIM_PLUGINS GaimPlugin *plugin; GList *l; - char *basename_no_ext; char *tmp; g_return_val_if_fail(basename != NULL, NULL); - basename_no_ext = gaim_plugin_get_basename(basename); - for (l = plugins; l != NULL; l = l->next) { plugin = (GaimPlugin *)l->data; if (plugin->path != NULL) { tmp = gaim_plugin_get_basename(plugin->path); - if (!strcmp(tmp, basename_no_ext)) + if (!strcmp(tmp, basename)) { g_free(tmp); - g_free(basename_no_ext); return plugin; } g_free(tmp); } } - g_free(basename_no_ext); #endif /* GAIM_PLUGINS */ return NULL;