pidgin/gtkmain.c

changeset 23338
bf7332b531d3
parent 22895
0851d06eb652
child 23349
2f84acf5b84c
equal deleted inserted replaced
23334:b59937f4ab22 23338:bf7332b531d3
183 */ 183 */
184 static void 184 static void
185 sighandler(int sig) 185 sighandler(int sig)
186 { 186 {
187 switch (sig) { 187 switch (sig) {
188 case SIGHUP:
189 purple_debug_warning("sighandler", "Caught signal %d\n", sig);
190 purple_connections_disconnect_all();
191 break;
192 case SIGSEGV: 188 case SIGSEGV:
193 fprintf(stderr, "%s", segfault_message); 189 fprintf(stderr, "%s", segfault_message);
194 abort(); 190 abort();
195 break; 191 break;
196 #if defined(USE_GSTREAMER) && !defined(GST_CAN_DISABLE_FORKING) 192 #if defined(USE_GSTREAMER) && !defined(GST_CAN_DISABLE_FORKING)
215 /* Restore signal catching */ 211 /* Restore signal catching */
216 signal(SIGCHLD, sighandler); 212 signal(SIGCHLD, sighandler);
217 break; 213 break;
218 default: 214 default:
219 purple_debug_warning("sighandler", "Caught signal %d\n", sig); 215 purple_debug_warning("sighandler", "Caught signal %d\n", sig);
220 purple_connections_disconnect_all(); 216 purple_core_quit();
221
222 purple_plugins_unload_all();
223
224 if (gtk_main_level())
225 gtk_main_quit();
226 exit(0);
227 } 217 }
228 } 218 }
229 #endif 219 #endif
230 220
231 static int 221 static int

mercurial