changeset 403:d6f02d7f78d8

[gaim-migrate @ 413] Fixed plugin stuff. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 14 Jun 2000 01:52:10 +0000
parents 943248245f32
children 3d94cc1dc424
files src/aim.c src/buddy.c src/plugins.c
diffstat 3 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/aim.c	Wed Jun 14 01:24:02 2000 +0000
+++ b/src/aim.c	Wed Jun 14 01:52:10 2000 +0000
@@ -112,6 +112,7 @@
 		dlclose(p->handle);
 		g_free(p->filename); /* why do i bother? */
 		g_free(p);
+		c = c->next;
 	}
 #endif /* GAIM_PLUGINS */
 
--- a/src/buddy.c	Wed Jun 14 01:24:02 2000 +0000
+++ b/src/buddy.c	Wed Jun 14 01:52:10 2000 +0000
@@ -1103,6 +1103,7 @@
 		dlclose(p->handle);
 		g_free(p->filename); /* why do i bother? */
 		g_free(p);
+		c = c->next;
 	}
 #endif
 
--- a/src/plugins.c	Wed Jun 14 01:24:02 2000 +0000
+++ b/src/plugins.c	Wed Jun 14 01:52:10 2000 +0000
@@ -62,6 +62,7 @@
 static GtkWidget *plugwindow;
 
 static GtkWidget *config;
+static guint confighandle = 0;
 
 /* --------------- Function Declarations --------------------- */
 
@@ -423,6 +424,8 @@
 	void (*gaim_plugin_config)();
 	char *error;
 
+	if (confighandle)
+		gtk_signal_disconnect(GTK_OBJECT(config), confighandle);
 	text_len = gtk_text_get_length(GTK_TEXT(plugtext));
 	gtk_text_set_point(GTK_TEXT(plugtext), 0);
 	gtk_text_forward_delete(GTK_TEXT(plugtext), text_len);
@@ -432,10 +435,11 @@
 
 	gaim_plugin_config = dlsym(p->handle, "gaim_plugin_config");
 	if ((error = (char *)dlerror()) == NULL) {
-		gtk_signal_connect(GTK_OBJECT(config), "clicked",
+		confighandle = gtk_signal_connect(GTK_OBJECT(config), "clicked",
 				   GTK_SIGNAL_FUNC(gaim_plugin_config), NULL);
 		gtk_widget_set_sensitive(config, 1);
 	} else {
+		confighandle = 0;
 		gtk_widget_set_sensitive(config, 0);
 	}
 }