Mercurial > pidgin
comparison src/plugin.c @ 12342:0692d20d9d81
[gaim-migrate @ 14646]
sf patch #1361667, from Sadrul Habib Chowdhury
"Gaim currently loads a plugin twice if it exists in
user's home directory, and also in LIBDIR. This can
create confusion in the plugins-dialog -- especially
when someone modifies some plugin and installs in his
home-directory. I think it'd be better to load only the
plugin which is in user's home directory in such cases."
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 05 Dec 2005 04:19:07 +0000 |
parents | 720fb68418d8 |
children | 70f18c73da9d |
comparison
equal
deleted
inserted
replaced
12341:eea31c8cc9f7 | 12342:0692d20d9d81 |
---|---|
198 { | 198 { |
199 #ifdef GAIM_PLUGINS | 199 #ifdef GAIM_PLUGINS |
200 GaimPlugin *plugin = NULL; | 200 GaimPlugin *plugin = NULL; |
201 GaimPlugin *loader; | 201 GaimPlugin *loader; |
202 gpointer unpunned; | 202 gpointer unpunned; |
203 gchar *basename = NULL; | |
203 gboolean (*gaim_init_plugin)(GaimPlugin *); | 204 gboolean (*gaim_init_plugin)(GaimPlugin *); |
204 | 205 |
205 gaim_debug_misc("plugins", "probing %s\n", filename); | 206 gaim_debug_misc("plugins", "probing %s\n", filename); |
206 g_return_val_if_fail(filename != NULL, NULL); | 207 g_return_val_if_fail(filename != NULL, NULL); |
207 | 208 |
208 if (!g_file_test(filename, G_FILE_TEST_EXISTS)) | 209 if (!g_file_test(filename, G_FILE_TEST_EXISTS)) |
209 return NULL; | 210 return NULL; |
210 | 211 |
211 /* If this plugin has already been probed then exit */ | 212 /* If this plugin has already been probed then exit */ |
212 plugin = gaim_plugins_find_with_filename(filename); | 213 basename = gaim_plugin_get_basename(filename); |
214 plugin = gaim_plugins_find_with_basename(basename); | |
215 g_free(basename); | |
213 if (plugin != NULL) | 216 if (plugin != NULL) |
217 { | |
218 if (strcmp(filename, plugin->path)) | |
219 gaim_debug_info("plugins", "Not loading %s." | |
220 "Another plugin with the same name (%s) has already been loaded.\n", | |
221 filename, plugin->path); | |
214 return plugin; | 222 return plugin; |
223 } | |
215 | 224 |
216 plugin = gaim_plugin_new(has_file_extension(filename, G_MODULE_SUFFIX), filename); | 225 plugin = gaim_plugin_new(has_file_extension(filename, G_MODULE_SUFFIX), filename); |
217 | 226 |
218 if (plugin->native_plugin) { | 227 if (plugin->native_plugin) { |
219 const char *error; | 228 const char *error; |