From 953ff3c83e95ae3943e4307b64fe429d56cc8ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 14 May 2026 10:35:30 +0200 Subject: [PATCH] core: reorder cases in parse_argv() to match order in --help MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hidden-from-help options (--crash-reboot, --service-watchdogs, --deserialize, --switched-root, --machine-id, -D, -b/-s/-z, ?) move to the bottom. The 'b'/'s'/'z' → '?' fall-through is preserved. Co-developed-by: Claude Opus 4.7 --- src/core/main.c | 180 ++++++++++++++++++++++++------------------------ 1 file changed, 91 insertions(+), 89 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index c10df7d87a..dc55ea62e9 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -990,11 +990,90 @@ static int parse_argv(int argc, char *argv[]) { switch (c) { - case ARG_LOG_LEVEL: - r = log_set_max_level_from_string(optarg); - if (r < 0) - return log_error_errno(r, "Failed to parse log level \"%s\": %m", optarg); + case 'h': + arg_action = ACTION_HELP; + break; + case ARG_VERSION: + arg_action = ACTION_VERSION; + break; + + case ARG_TEST: + arg_action = ACTION_TEST; + break; + + case ARG_SYSTEM: + arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; + break; + + case ARG_USER: + arg_runtime_scope = RUNTIME_SCOPE_USER; + user_arg_seen = true; + break; + + case ARG_DUMP_CONFIGURATION_ITEMS: + arg_action = ACTION_DUMP_CONFIGURATION_ITEMS; + break; + + case ARG_DUMP_BUS_PROPERTIES: + arg_action = ACTION_DUMP_BUS_PROPERTIES; + break; + + case ARG_BUS_INTROSPECT: + arg_bus_introspect = optarg; + arg_action = ACTION_BUS_INTROSPECT; + break; + + case ARG_UNIT: + r = free_and_strdup(&arg_default_unit, optarg); + if (r < 0) + return log_error_errno(r, "Failed to set default unit \"%s\": %m", optarg); + + break; + + case ARG_DUMP_CORE: + r = parse_boolean_argument("--dump-core", optarg, &arg_dump_core); + if (r < 0) + return r; + break; + + case ARG_CRASH_CHVT: + r = parse_crash_chvt(optarg, &arg_crash_chvt); + if (r < 0) + return log_error_errno(r, "Failed to parse crash virtual terminal index: \"%s\": %m", + optarg); + break; + + case ARG_CRASH_ACTION: + r = crash_action_from_string(optarg); + if (r < 0) + return log_error_errno(r, "Failed to parse crash action \"%s\": %m", optarg); + arg_crash_action = r; + break; + + case ARG_CRASH_SHELL: + r = parse_boolean_argument("--crash-shell", optarg, &arg_crash_shell); + if (r < 0) + return r; + break; + + case ARG_CONFIRM_SPAWN: + arg_confirm_spawn = mfree(arg_confirm_spawn); + + r = parse_confirm_spawn(optarg, &arg_confirm_spawn); + if (r < 0) + return log_error_errno(r, "Failed to parse confirm spawn option: \"%s\": %m", + optarg); + break; + + case ARG_SHOW_STATUS: + if (optarg) { + r = parse_show_status(optarg, &arg_show_status); + if (r < 0) + return log_error_errno(r, "Failed to parse show status boolean: \"%s\": %m", + optarg); + } else + arg_show_status = SHOW_STATUS_YES; break; case ARG_LOG_TARGET: @@ -1004,6 +1083,13 @@ static int parse_argv(int argc, char *argv[]) { break; + case ARG_LOG_LEVEL: + r = log_set_max_level_from_string(optarg); + if (r < 0) + return log_error_errno(r, "Failed to parse log level \"%s\": %m", optarg); + + break; + case ARG_LOG_COLOR: if (optarg) { @@ -1055,65 +1141,11 @@ static int parse_argv(int argc, char *argv[]) { arg_defaults.std_error = r; break; - case ARG_UNIT: - r = free_and_strdup(&arg_default_unit, optarg); - if (r < 0) - return log_error_errno(r, "Failed to set default unit \"%s\": %m", optarg); - - break; - - case ARG_SYSTEM: - arg_runtime_scope = RUNTIME_SCOPE_SYSTEM; - break; - - case ARG_USER: - arg_runtime_scope = RUNTIME_SCOPE_USER; - user_arg_seen = true; - break; - - case ARG_TEST: - arg_action = ACTION_TEST; - break; - case ARG_NO_PAGER: arg_pager_flags |= PAGER_DISABLE; break; - case ARG_VERSION: - arg_action = ACTION_VERSION; - break; - - case ARG_DUMP_CONFIGURATION_ITEMS: - arg_action = ACTION_DUMP_CONFIGURATION_ITEMS; - break; - - case ARG_DUMP_BUS_PROPERTIES: - arg_action = ACTION_DUMP_BUS_PROPERTIES; - break; - - case ARG_BUS_INTROSPECT: - arg_bus_introspect = optarg; - arg_action = ACTION_BUS_INTROSPECT; - break; - - case ARG_DUMP_CORE: - r = parse_boolean_argument("--dump-core", optarg, &arg_dump_core); - if (r < 0) - return r; - break; - - case ARG_CRASH_CHVT: - r = parse_crash_chvt(optarg, &arg_crash_chvt); - if (r < 0) - return log_error_errno(r, "Failed to parse crash virtual terminal index: \"%s\": %m", - optarg); - break; - - case ARG_CRASH_SHELL: - r = parse_boolean_argument("--crash-shell", optarg, &arg_crash_shell); - if (r < 0) - return r; - break; + /* Options not shown in --help. */ case ARG_CRASH_REBOOT: r = parse_boolean_argument("--crash-reboot", optarg, NULL); @@ -1122,38 +1154,12 @@ static int parse_argv(int argc, char *argv[]) { arg_crash_action = r > 0 ? CRASH_REBOOT : CRASH_FREEZE; break; - case ARG_CRASH_ACTION: - r = crash_action_from_string(optarg); - if (r < 0) - return log_error_errno(r, "Failed to parse crash action \"%s\": %m", optarg); - arg_crash_action = r; - break; - - case ARG_CONFIRM_SPAWN: - arg_confirm_spawn = mfree(arg_confirm_spawn); - - r = parse_confirm_spawn(optarg, &arg_confirm_spawn); - if (r < 0) - return log_error_errno(r, "Failed to parse confirm spawn option: \"%s\": %m", - optarg); - break; - case ARG_SERVICE_WATCHDOGS: r = parse_boolean_argument("--service-watchdogs=", optarg, &arg_service_watchdogs); if (r < 0) return r; break; - case ARG_SHOW_STATUS: - if (optarg) { - r = parse_show_status(optarg, &arg_show_status); - if (r < 0) - return log_error_errno(r, "Failed to parse show status boolean: \"%s\": %m", - optarg); - } else - arg_show_status = SHOW_STATUS_YES; - break; - case ARG_DESERIALIZE: { int fd; FILE *f; @@ -1184,10 +1190,6 @@ static int parse_argv(int argc, char *argv[]) { return log_error_errno(r, "MachineID '%s' is not valid: %m", optarg); break; - case 'h': - arg_action = ACTION_HELP; - break; - case 'D': log_set_max_level(LOG_DEBUG); break;