# HG changeset patch # User Eric Warmenhoven # Date 956147778 0 # Node ID e8ea1e2fdf0cf0cba4abbd8a079b9cb9508926e3 # Parent fe81c8b4951d5ab94a3b73f919538e3f856a4e6a [gaim-migrate @ 148] Bugfixes and memleaks mostly. committer: Tailor Script diff -r fe81c8b4951d -r e8ea1e2fdf0c plugins/iconaway.c --- a/plugins/iconaway.c Wed Apr 19 08:49:49 2000 +0000 +++ b/plugins/iconaway.c Wed Apr 19 12:36:18 2000 +0000 @@ -16,8 +16,7 @@ GDK_WINDOW_XWINDOW(imaway->window), ((_XPrivDisplay)GDK_DISPLAY())->default_screen); #ifdef USE_APPLET - gnome_buddy_hide(); - set_applet_draw_closed(); + applet_destroy_buddy(); #else XIconifyWindow(GDK_DISPLAY(), GDK_WINDOW_XWINDOW(blist->window), diff -r fe81c8b4951d -r e8ea1e2fdf0c plugins/spellchk.c --- a/plugins/spellchk.c Wed Apr 19 08:49:49 2000 +0000 +++ b/plugins/spellchk.c Wed Apr 19 12:36:18 2000 +0000 @@ -48,7 +48,7 @@ struct replace_words *r; r = (struct replace_words *)(w->data); tmp = have_word(*message, word); - if (!strcmp(have_word(*message, word), r->bad)) { + if (!strcmp(tmp, r->bad)) { substitute(message, word, strlen(r->bad), r->good); l += num_words(r->good) - num_words(r->bad); diff -r fe81c8b4951d -r e8ea1e2fdf0c src/aim.c --- a/src/aim.c Wed Apr 19 08:49:49 2000 +0000 +++ b/src/aim.c Wed Apr 19 12:36:18 2000 +0000 @@ -404,11 +404,9 @@ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(remember), (general_options & OPT_GEN_REMEMBER_PASS)); if (current_user) { - GList *all = combo_user_names(); - GList *srch = g_list_find(all, (void *)current_user->username); + GList *all = aim_users; + GList *srch = g_list_find(all, (void *)current_user); int length = g_list_length(all) - g_list_length(srch); - g_list_free(srch); - g_list_free(all); gtk_combo_set_value_in_list(GTK_COMBO(name), length, 0); if ((general_options & OPT_GEN_REMEMBER_PASS)) { diff -r fe81c8b4951d -r e8ea1e2fdf0c src/plugins.c --- a/src/plugins.c Wed Apr 19 08:49:49 2000 +0000 +++ b/src/plugins.c Wed Apr 19 12:36:18 2000 +0000 @@ -87,10 +87,16 @@ { char *buf = g_malloc(BUF_LEN); - if (!plugin_dialog) { - plugin_dialog = gtk_file_selection_new("Gaim - Plugin List"); + if (plugin_dialog) { + g_free(buf); + gtk_widget_show(plugin_dialog); + gdk_window_raise(plugin_dialog->window); + return; + } - gtk_file_selection_hide_fileop_buttons( + plugin_dialog = gtk_file_selection_new("Gaim - Plugin List"); + + gtk_file_selection_hide_fileop_buttons( GTK_FILE_SELECTION(plugin_dialog)); if(getenv("PLUGIN_DIR") == NULL) { @@ -109,8 +115,6 @@ gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(plugin_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_plugins), NULL); - } - g_free(buf); gtk_widget_show(plugin_dialog); gdk_window_raise(plugin_dialog->window); @@ -335,14 +339,18 @@ while (c) { g = (struct gaim_callback *)c->data; if (g->handle == p->handle) { - callbacks = g_list_remove(callbacks, c); + callbacks = g_list_remove(callbacks, c->data); g_free(g); + c = callbacks; + if (c == NULL) break; } c = c->next; } - dlclose(p->handle); + /* don't ask me why this works */ + if (callbacks != NULL) dlclose(p->handle); plugins = g_list_remove(plugins, p); + g_free(p->filename); g_free(p); gtk_widget_set_sensitive(config, 0); update_show_plugins(); @@ -394,8 +402,10 @@ while (c) { g = (struct gaim_callback *)c->data; if (handle == g->handle && func == g->function) { - callbacks = g_list_remove(callbacks, g); + callbacks = g_list_remove(callbacks, c->data); g_free(g); + c = callbacks; + if (c == NULL) break; } c = c->next; }