make ob_exit() take an error code. don't exit with 0 for signals other than TERM and INT.
Dana Jansens danakj@orodu.net
5 files changed,
12 insertions(+),
9 deletions(-)
M
openbox/action.c
→
openbox/action.c
@@ -1167,7 +1167,7 @@ }
void action_exit(union ActionData *data) { - ob_exit(); + ob_exit(0); } void action_showmenu(union ActionData *data)
M
openbox/event.c
→
openbox/event.c
@@ -554,7 +554,7 @@
switch(e->type) { case SelectionClear: ob_debug("Another WM has requested to replace us. Exiting.\n"); - ob_exit(); + ob_exit(0); break; case ClientMessage:
M
openbox/openbox.c
→
openbox/openbox.c
@@ -61,6 +61,7 @@ static gboolean restart;
static char *restart_path; static Cursor cursors[OB_NUM_CURSORS]; static KeyCode keys[OB_NUM_KEYS]; +static gint exitcode = 0; static void signal_handler(int signal, gpointer data); static void parse_args(int argc, char **argv);@@ -297,7 +298,7 @@ execvp(argv[0], argv); /* try how we were run */
execlp(argv[0], g_path_get_basename(argv[0])); /* last resort */ } - return 0; + return exitcode; } static void signal_handler(int signal, gpointer data)@@ -310,7 +311,8 @@ fprintf(stderr, "Caught signal %d. Reconfiguring.\n", signal);
ob_reconfigure(); } else { fprintf(stderr, "Caught signal %d. Exiting.\n", signal); - ob_exit(); + /* TERM and INT return a 0 code */ + ob_exit(!(signal == SIGTERM || signal == SIGINT)); } }@@ -386,17 +388,18 @@
void ob_restart() { restart = TRUE; - ob_exit(); + ob_exit(0); } void ob_reconfigure() { reconfigure = TRUE; - ob_exit(); + ob_exit(0); } -void ob_exit() +void ob_exit(gint code) { + exitcode = code; ob_main_loop_exit(ob_main_loop); }
M
openbox/openbox.h
→
openbox/openbox.h
@@ -31,7 +31,7 @@ ObState ob_state();
void ob_restart_other(const gchar *path); void ob_restart(); -void ob_exit(); +void ob_exit(gint code); void ob_reconfigure();
M
openbox/session.c
→
openbox/session.c
@@ -281,7 +281,7 @@ }
static void sm_die(SmcConn conn, SmPointer data) { - ob_exit(); + ob_exit(0); } static void sm_save_complete(SmcConn conn, SmPointer data)