qulogic/gplugin

A few updates to cleanup a bunch of code in libpurple.
feature/unload-failed-state
2020-04-10, Gary Kramlich
5a05c6354d62
A few updates to cleanup a bunch of code in libpurple.

* Add a new plugin state UNLOAD_FAILED that tracks when a plugin failed to
unload.
* Add a new signal GPluginManager::unload-plugin-failed
* Update GPluginManager::load-failed to pass the error, if any, that the
plugin returned.
* Added gplugin_manager_foreach and GPluginManagerForeachFunc to make it
easier to operate on all plugins.
# GPlugin
GPlugin is a GObject based library that implements a reusable plugin system.
It supports loading plugins in multiple other languages via loaders. It relies
heavily on [GObjectIntrospection](https://gi.readthedocs.io/) to expose its API
to the other languages.
It has a simple API which makes it very easy to use in your application.
For more information on using GPlugin in your application, please see the
[embedding](https://docs.pidgin.im/gplugin/latest/chapter-embedding.html) page.
## History
GPlugin has a bit of history, you can read more about it in [HISTORY.md](HISTORY.md)
## Language Support
GPlugin currently supports plugins written in C/C++, Lua, Python, and Vala.
## API Reference
The API reference for the stable branch can be found at
[docs.pidgin.im/gplugin/stable](https://docs.pidgin.im/gplugin/stable).
The in-development API reference for the development branch can be found at
[docs.pidgin.im/gplugin/latest](https://docs.pidgin.im/gplugin/latest).