Mercurial > pidgin
diff src/plugin.c @ 5838:6aa7651c7c15
[gaim-migrate @ 6269]
regain the ability to remember what plugins we had loaded
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Thu, 12 Jun 2003 05:01:11 +0000 |
parents | 5e93fc46d1af |
children | 8f5ccf9e590a |
line wrap: on
line diff
--- a/src/plugin.c Thu Jun 12 04:20:08 2003 +0000 +++ b/src/plugin.c Thu Jun 12 05:01:11 2003 +0000 @@ -144,6 +144,26 @@ #endif /* GAIM_PLUGINS */ +static void +update_plugin_prefs(void) +{ + GList *pl; + GList *files = NULL; + GaimPlugin *p; + + for (pl = gaim_plugins_get_loaded(); pl != NULL; pl = pl->next) { + p = pl->data; + + if(p->info->type != GAIM_PLUGIN_PROTOCOL && + p->info->type != GAIM_PLUGIN_LOADER) { + files = g_list_append(files, p->path); + } + } + + gaim_prefs_set_string_list("/plugins/loaded", files); + g_list_free(files); +} + static gint compare_prpl(GaimPlugin *a, GaimPlugin *b) { @@ -290,6 +310,7 @@ } loaded_plugins = g_list_append(loaded_plugins, plugin); + update_plugin_prefs(); plugin->loaded = TRUE; @@ -311,6 +332,7 @@ g_return_val_if_fail(plugin != NULL, FALSE); loaded_plugins = g_list_remove(loaded_plugins, plugin); + update_plugin_prefs(); g_return_val_if_fail(gaim_plugin_is_loaded(plugin), FALSE); @@ -523,6 +545,23 @@ #endif /* GAIM_PLUGINS */ } + +void +gaim_plugins_load_all(void) +{ +#ifdef GAIM_PLUGINS + GList *f, *files = gaim_prefs_get_string_list("/plugins/loaded"); + + for(f = files; f; f = f->next) { + gaim_plugin_load(gaim_plugin_probe(f->data)); + g_free(f->data); + } + + g_list_free(files); +#endif /* GAIM_PLUGINS */ +} + + void gaim_plugins_probe(const char *ext) {