different directory. I think it would be better to compare
only the basename of the filename here (case-insensitive on
W32). */
- g_return_val_if_fail(plugin, 1);
- g_return_val_if_fail(plugin->filename, 1);
- g_return_val_if_fail(filename, 1);
+ cm_return_val_if_fail(plugin, 1);
+ cm_return_val_if_fail(plugin->filename, 1);
+ cm_return_val_if_fail(filename, 1);
return strcmp(filename, plugin->filename);
}
struct PluginFeature *(*plugin_provides)(void);
gint ok;
START_TIMING((filename?filename:"NULL plugin"));
- g_return_val_if_fail(filename != NULL, NULL);
- g_return_val_if_fail(error != NULL, NULL);
+ cm_return_val_if_fail(filename != NULL, NULL);
+ cm_return_val_if_fail(error != NULL, NULL);
/* check duplicate plugin path name */
if (plugin_is_loaded(filename)) {
return new;
}
+Plugin *plugin_get_loaded_by_name(const gchar *name)
+{
+ Plugin *plugin = NULL;
+ GSList *new, *cur;
+ new = plugin_get_list();
+ for (cur = new; cur; cur = g_slist_next(cur)) {
+ plugin = (Plugin *)cur->data;
+ if (!g_ascii_strcasecmp(plugin->name(), name))
+ break;
+ else
+ plugin = NULL;
+ }
+ g_slist_free(new);
+ return plugin;
+}
+
GSList *plugin_get_unloaded_list(void)
{
return g_slist_copy(unloaded_plugins);