From: Zbigniew Jędrzejewski-Szmek Date: Thu, 14 May 2026 08:35:30 +0000 (+0200) Subject: core: reorder cases in parse_argv() to match order in --help X-Git-Tag: v261-rc1~157^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=953ff3c83e95ae3943e4307b64fe429d56cc8ac6;p=thirdparty%2Fsystemd.git core: reorder cases in parse_argv() to match order in --help 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 --- diff --git a/src/core/main.c b/src/core/main.c index c10df7d87a4..dc55ea62e91 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -990,13 +990,92 @@ static int parse_argv(int argc, char *argv[]) { switch (c) { - case ARG_LOG_LEVEL: - r = log_set_max_level_from_string(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 parse log level \"%s\": %m", optarg); + 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: r = log_set_target_from_string(optarg); if (r < 0) @@ -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;