svnno****@sourc*****
svnno****@sourc*****
Sun Mar 23 00:33:49 JST 2008
Revision: 3490 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3490 Author: pal_gene Date: 2008-03-23 00:33:49 +0900 (Sun, 23 Mar 2008) Log Message: ----------- Add signal handler for safe termination from external signal. Need research about signum. Currently handle only SIGINT and SIGTERM. Modified Paths: -------------- kazehakase/trunk/ChangeLog kazehakase/trunk/src/main.c Modified: kazehakase/trunk/ChangeLog =================================================================== --- kazehakase/trunk/ChangeLog 2008-03-22 10:36:15 UTC (rev 3489) +++ kazehakase/trunk/ChangeLog 2008-03-22 15:33:49 UTC (rev 3490) @@ -1,4 +1,12 @@ 2008-03-22 Shunichi Fuji <palgl****@gmail*****> + + * src/main.c: + Add signal handler for safe termination from external signal. + Need research about signum. + Currently handle only SIGINT and SIGTERM. + +2008-03-22 Shunichi Fuji <palgl****@gmail*****> + * etc/bookmarkbar.xml: Update Slashdot rss. Modified: kazehakase/trunk/src/main.c =================================================================== --- kazehakase/trunk/src/main.c 2008-03-22 10:36:15 UTC (rev 3489) +++ kazehakase/trunk/src/main.c 2008-03-22 15:33:49 UTC (rev 3490) @@ -29,6 +29,10 @@ #include <gtk/gtk.h> #include <glib/gi18n.h> +#ifndef G_OS_WIN32 +#include <signal.h> +#endif + #include "kazehakase.h" #include "kz-window.h" #include "kz-ext.h" @@ -406,6 +410,15 @@ return window; } +/** + * Signal handler for safe termination from external signal + * @param signum signal number, will be SIGINT or SIGTERM + */ +/* TODO:should handle more about other signum? */ +void kz_sighandle_exit(int signum) +{ + gtk_main_quit(); +} /****************************************************************************** * * @@ -483,6 +496,15 @@ return 0; /* found kazehakase process */ } + /* signal handler for safe termination */ + /* TODO: need win32 version? */ +#ifndef G_OS_WIN32 + struct sigaction *act = g_malloc0(sizeof(struct sigaction)); + act->sa_handler = kz_sighandle_exit; + sigaction(SIGINT, act, NULL); + sigaction(SIGTERM, act, NULL); +#endif + kz_app = kz_app_new(argc, argv); kz_app_init_dependencies(kz_app, &initial_address);