( cvs diff -u -r 1.49.2.36 -r 1.49.2.37 src/procmime.c; ) > 1.9.6cvs3.patchset
( cvs diff -u -r 1.30.2.10 -r 1.30.2.11 src/prefs_toolbar.c; ) > 1.9.6cvs4.patchset
( cvs diff -u -r 1.382.2.112 -r 1.382.2.113 src/compose.c; ) > 1.9.6cvs5.patchset
+( cvs diff -u -r 1.13.2.3 -r 1.13.2.4 src/common/plugin.c; ) > 1.9.6cvs6.patchset
{
gchar *filename;
GModule *module;
- gchar *(*name) (void);
- gchar *(*desc) (void);
- gchar *(*type) (void);
+ const gchar *(*name) (void);
+ const gchar *(*desc) (void);
+ const gchar *(*type) (void);
};
/**
return strcmp((gchar *)data, (gchar *)str) ? TRUE : FALSE;
}
+static gint list_find_by_plugin_filename(const Plugin *plugin, const gchar *filename)
+{
+ g_return_val_if_fail(plugin, 1);
+ g_return_val_if_fail(plugin->filename, 1);
+ g_return_val_if_fail(filename, 1);
+
+ return strcmp(filename, plugin->filename);
+}
+
void plugin_save_list(void)
{
gchar *rcpath, *block;
g_return_val_if_fail(filename != NULL, -1);
g_return_val_if_fail(error != NULL, -1);
+
+ /* check duplicate plugin path name */
+ if (g_slist_find_custom(plugins, filename,
+ (GCompareFunc)list_find_by_plugin_filename)) {
+ *error = g_strdup(_("Plugin already loaded"));
+ return -1;
+ }
plugin = g_new0(Plugin, 1);
if (plugin == NULL) {