#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#include <errno.h>
#include <X11/cursorfont.h>
static gboolean xsync;
static gboolean reconfigure;
static gboolean restart;
-static char *restart_path;
+static gchar *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);
+static void signal_handler(gint signal, gpointer data);
+static void parse_args(gint argc, gchar **argv);
-int main(int argc, char **argv)
+gint main(gint argc, gchar **argv)
{
#ifdef DEBUG
ob_debug_show_output(TRUE);
g_set_prgname(argv[0]);
- chdir(g_get_home_dir());
+ if (chdir(g_get_home_dir()) == -1)
+ g_warning("Unable to change to home directory (%s): %s",
+ g_get_home_dir(), g_strerror(errno));
parse_paths_startup();
if (ob_rr_inst == NULL)
ob_exit_with_error("Failed to initialize the render library.");
- /* XXX fork self onto other screens */
-
XSynchronize(ob_display, xsync);
/* check for locale support */
} while (reconfigure);
}
+ XSync(ob_display, FALSE);
+
RrThemeFree(ob_rr_theme);
RrInstanceFree(ob_rr_inst);
if (restart) {
if (restart_path != NULL) {
- int argcp;
- char **argvp;
+ gint argcp;
+ gchar **argvp;
GError *err = NULL;
/* run other shit */
} else {
g_warning("failed to execute '%s': %s", restart_path,
err->message);
+ g_error_free(err);
}
}
return exitcode;
}
-static void signal_handler(int signal, gpointer data)
+static void signal_handler(gint signal, gpointer data)
{
if (signal == SIGUSR1) {
- fprintf(stderr, "Caught signal %d. Restarting.\n", signal);
+ ob_debug("Caught signal %d. Restarting.\n", signal);
ob_restart();
} else if (signal == SIGUSR2) {
- fprintf(stderr, "Caught signal %d. Reconfiguring.\n", signal);
+ ob_debug("Caught signal %d. Reconfiguring.\n", signal);
ob_reconfigure();
} else {
- fprintf(stderr, "Caught signal %d. Exiting.\n", signal);
+ ob_debug("Caught signal %d. Exiting.\n", signal);
/* TERM and INT return a 0 code */
ob_exit(!(signal == SIGTERM || signal == SIGINT));
}
g_print("\nPlease report bugs at %s\n\n", PACKAGE_BUGREPORT);
}
-static void parse_args(int argc, char **argv)
+static void parse_args(gint argc, gchar **argv)
{
- int i;
+ gint i;
for (i = 1; i < argc; ++i) {
if (!strcmp(argv[i], "--version")) {