all repos — openbox @ af7280b45d65480cf81f1262494b78df98a80681

openbox fork - make it a bit more like ryudo

fix cmd line argument parsing, it would drop some.
drop the --restart-binary argument. we're going to have to do it differently because gnome-session is stupid !
Dana Jansens danakj@orodu.net
commit

af7280b45d65480cf81f1262494b78df98a80681

parent

98304406432cda3a94c2a57f0812714a229ec77a

1 files changed, 27 insertions(+), 21 deletions(-)

jump to
M openbox/openbox.copenbox/openbox.c

@@ -477,7 +477,7 @@ static void remove_args(gint *argc, gchar **argv, gint index, gint num)

{ gint i; - for (i = index; i < index + num; ++i) + for (i = index; i < *argc - num; ++i) argv[i] = argv[i+num]; for (; i < *argc; ++i) argv[i] = NULL;

@@ -492,31 +492,41 @@ for (i = 1; i < *argc; ++i) {

if (!strcmp(argv[i], "--version")) { print_version(); exit(0); - } else if (!strcmp(argv[i], "--help")) { + } + else if (!strcmp(argv[i], "--help")) { print_help(); exit(0); - } else if (!strcmp(argv[i], "--g-fatal-warnings")) { + } + else if (!strcmp(argv[i], "--g-fatal-warnings")) { g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL); - } else if (!strcmp(argv[i], "--replace")) { + } + else if (!strcmp(argv[i], "--replace")) { ob_replace_wm = TRUE; - } else if (!strcmp(argv[i], "--sync")) { + remove_args(argc, argv, i, 1); + --i; /* this arg was removed so go back */ + } + else if (!strcmp(argv[i], "--sync")) { xsync = TRUE; - } else if (!strcmp(argv[i], "--debug")) { + } + else if (!strcmp(argv[i], "--debug")) { ob_debug_show_output(TRUE); ob_debug_enable(OB_DEBUG_SM, TRUE); ob_debug_enable(OB_DEBUG_APP_BUGS, TRUE); - } else if (!strcmp(argv[i], "--debug-focus")) { + } + else if (!strcmp(argv[i], "--debug-focus")) { ob_debug_show_output(TRUE); ob_debug_enable(OB_DEBUG_SM, TRUE); ob_debug_enable(OB_DEBUG_APP_BUGS, TRUE); ob_debug_enable(OB_DEBUG_FOCUS, TRUE); - } else if (!strcmp(argv[i], "--reconfigure")) { + } + else if (!strcmp(argv[i], "--reconfigure")) { remote_control = 1; /* don't make this do anything if it's not in --help .. } else if (!strcmp(argv[i], "--restart")) { remote_control = 2; */ - } else if (!strcmp(argv[i], "--config")) { + } + else if (!strcmp(argv[i], "--config")) { if (i == *argc - 1) /* no args left */ g_printerr(_("--config requires an argument\n")); else {

@@ -533,8 +543,11 @@ else {

ob_sm_save_file = g_strdup(argv[i+1]); remove_args(argc, argv, i, 2); --i; /* this arg was removed so go back */ + ob_debug_type(OB_DEBUG_SM, "--sm-save-file %s\n", + ob_sm_save_file); } - } else if (!strcmp(argv[i], "--sm-client-id")) { + } + else if (!strcmp(argv[i], "--sm-client-id")) { if (i == *argc - 1) /* no args left */ /* not translated cuz it's sekret */ g_printerr("--sm-client-id requires an argument\n");

@@ -542,21 +555,14 @@ else {

ob_sm_id = g_strdup(argv[i+1]); remove_args(argc, argv, i, 2); --i; /* this arg was removed so go back */ + ob_debug_type(OB_DEBUG_SM, "--sm-client-id %s\n", ob_sm_id); } - } else if (!strcmp(argv[i], "--sm-disable")) { + } + else if (!strcmp(argv[i], "--sm-disable")) { ob_sm_use = FALSE; } #endif - else if (!strcmp(argv[i], "--restart-binary")) { - if (i == *argc - 1) /* no args left */ - /* not translated cuz it's sekret */ - g_printerr("--restart-binary requires an argument\n"); - else { - argv[0] = g_strdup(argv[i+1]); - remove_args(argc, argv, i, 2); - --i; /* this arg was removed so go back */ - } - } else { + else { /* this is a memleak.. oh well.. heh */ gchar *err = g_strdup_printf ("Invalid command line argument '%s'\n", argv[i]);