* src/common/plugin.c
[claws.git] / src / common / plugin.c
index c8a3d15..0006d1a 100644 (file)
 
 #include <stdio.h>
 
+#include "defs.h"
 #include <glib.h>
 #include <gmodule.h>
 
 #include "intl.h"
-#include "defs.h"
 #include "utils.h"
 #include "plugin.h"
 #include "prefs.h"
@@ -32,9 +32,9 @@ struct _Plugin
 {
        gchar   *filename;
        GModule *module;
-       gchar   *(*name) ();
-       gchar   *(*desc) ();
-       gchar   *(*type) ();
+       gchar   *(*name) (void);
+       gchar   *(*desc) (void);
+       gchar   *(*type) (void);
 };
 
 /**
@@ -48,7 +48,7 @@ static gint list_find_by_string(gconstpointer data, gconstpointer str)
        return strcmp((gchar *)data, (gchar *)str) ? TRUE : FALSE;
 }
 
-void plugin_save_list()
+void plugin_save_list(void)
 {
        gchar *rcpath, *block;
        PrefFile *pfile;
@@ -92,7 +92,7 @@ gint plugin_load(const gchar *filename, gchar **error)
 {
        Plugin *plugin;
        gint (*plugin_init) (gchar **error);
-       gchar *plugin_name, *plugin_desc, *plugin_type;
+       gpointer plugin_name, plugin_desc, plugin_type;
        gint ok;
 
        g_return_val_if_fail(filename != NULL, -1);
@@ -111,10 +111,10 @@ gint plugin_load(const gchar *filename, gchar **error)
                return -1;
        }
 
-       if (!g_module_symbol(plugin->module, "plugin_name", (gpointer *)&plugin_name) ||
-           !g_module_symbol(plugin->module, "plugin_desc", (gpointer *)&plugin_desc) ||
-           !g_module_symbol(plugin->module, "plugin_type", (gpointer *)&plugin_type) ||
-           !g_module_symbol(plugin->module, "plugin_init", (gpointer *)&plugin_init)) {
+       if (!g_module_symbol(plugin->module, "plugin_name", &plugin_name) ||
+           !g_module_symbol(plugin->module, "plugin_desc", &plugin_desc) ||
+           !g_module_symbol(plugin->module, "plugin_type", &plugin_type) ||
+           !g_module_symbol(plugin->module, "plugin_init", (gpointer *) &plugin_init)) {
                *error = g_strdup(g_module_error());
                g_module_close(plugin->module);
                g_free(plugin);
@@ -141,7 +141,7 @@ gint plugin_load(const gchar *filename, gchar **error)
 
 void plugin_unload(Plugin *plugin)
 {
-       void (*plugin_done) ();
+       void (*plugin_done) (void);
 
        if (g_module_symbol(plugin->module, "plugin_done", (gpointer *)&plugin_done)) {
                plugin_done();
@@ -149,10 +149,11 @@ void plugin_unload(Plugin *plugin)
 
        g_module_close(plugin->module);
        plugins = g_slist_remove(plugins, plugin);
+       g_free(plugin->filename);
        g_free(plugin);
 }
 
-void plugin_load_all(gchar *type)
+void plugin_load_all(const gchar *type)
 {
        gchar *rcpath;
        gchar buf[BUFFSIZE];
@@ -185,7 +186,7 @@ void plugin_load_all(gchar *type)
        g_free(rcpath);
 }
 
-void plugin_unload_all(gchar *type)
+void plugin_unload_all(const gchar *type)
 {
        GSList *list, *cur;
 
@@ -207,7 +208,7 @@ void plugin_unload_all(gchar *type)
        }
 }
 
-GSList *plugin_get_list()
+GSList *plugin_get_list(void)
 {
        return g_slist_copy(plugins);
 }