comparison src/aim.c @ 2125:af59d854de29

[gaim-migrate @ 2135] bmiller's patch to unload plugins on exit signals committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 06 Aug 2001 18:12:36 +0000
parents 388b2d23442a
children 50c7a704ee56
comparison
equal deleted inserted replaced
2124:a1922ad52304 2125:af59d854de29
85 applet_buddy_show = FALSE; 85 applet_buddy_show = FALSE;
86 if (mainwindow) 86 if (mainwindow)
87 gtk_widget_hide(mainwindow); 87 gtk_widget_hide(mainwindow);
88 #else 88 #else
89 #ifdef GAIM_PLUGINS 89 #ifdef GAIM_PLUGINS
90 GList *c;
91 struct gaim_plugin *p;
92 void (*gaim_plugin_remove)();
93
94 /* first we tell those who have requested it we're quitting */ 90 /* first we tell those who have requested it we're quitting */
95 plugin_event(event_quit, 0, 0, 0, 0); 91 plugin_event(event_quit, 0, 0, 0, 0);
96 92
97 /* then we remove everyone in a mass suicide */ 93 /* then we remove everyone in a mass suicide */
98 c = plugins; 94 remove_all_plugins();
99 while (c) {
100 p = (struct gaim_plugin *)c->data;
101 if (g_module_symbol(p->handle, "gaim_plugin_remove", (gpointer *)&gaim_plugin_remove))
102 (*gaim_plugin_remove)();
103 /* we don't need to worry about removing callbacks since
104 * there won't be any more chance to call them back :) */
105 g_free(p);
106 c = c->next;
107 }
108 #endif /* GAIM_PLUGINS */ 95 #endif /* GAIM_PLUGINS */
109 #ifdef USE_PERL 96 #ifdef USE_PERL
110 perl_end(); 97 perl_end();
111 #endif 98 #endif
112 99
404 "assistance, please IM either EWarmenhoven or RobFlynn and\n" 391 "assistance, please IM either EWarmenhoven or RobFlynn and\n"
405 "they can help you.\n"); 392 "they can help you.\n");
406 abort(); 393 abort();
407 break; 394 break;
408 default: 395 default:
396 debug_printf("caught signal %d\n", sig);
409 gtkspell_stop(); 397 gtkspell_stop();
410 debug_printf("caught signal %d\n", sig); 398 remove_all_plugins();
411 if (gtk_main_level()) 399 if (gtk_main_level())
412 gtk_main_quit(); 400 gtk_main_quit();
413 exit(0); 401 exit(0);
414 } 402 }
415 } 403 }