OSyncPlugin *osync_plugin_env_find_plugin(OSyncPluginEnv *env, const char *name) { GList *p; osync_assert(env); for (p = env->plugins; p; p = p->next) { OSyncPlugin *plugin = p->data; if (g_ascii_strcasecmp(osync_plugin_get_name(plugin), name) == 0) return plugin; } return NULL; }
static osync_bool plugin_list(OSyncError **error) { OSyncList *plugins; OSyncList *list; assert(!plugin_env); if (!(plugin_env = osync_plugin_env_new(error))) goto error; if (!(format_env = osync_format_env_new(error))) goto error_free_pluginenv; if (!osync_format_env_load_plugins(format_env, formatpath, error)) goto error_free_formatenv; if (!osync_plugin_env_load(plugin_env, pluginpath, error)) goto error_free_formatenv; plugins = osync_plugin_env_get_plugins(plugin_env); list = plugins; while(list) { OSyncPlugin* plugin = (OSyncPlugin*)list->data; fprintf (stdout, "Name: %s\n", osync_plugin_get_name(plugin)); fprintf (stdout, "Description: %s\n", osync_plugin_get_description(plugin)); list = list->next; } osync_list_free(plugins); return TRUE; error_free_formatenv: osync_format_env_unref(format_env); format_env = NULL; error_free_pluginenv: osync_plugin_env_unref(plugin_env); plugin_env = NULL; error: return FALSE; }