| 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 } |