Mercurial > pidgin.yaz
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; |
