]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Add "namespaces" to option macros, convert systemd-run+run0 (#41844) main
authorZbigniew Jędrzejewski-Szmek <zbyszek@amutable.com>
Tue, 28 Apr 2026 17:38:04 +0000 (19:38 +0200)
committerGitHub <noreply@github.com>
Tue, 28 Apr 2026 17:38:04 +0000 (19:38 +0200)
1  2 
src/shared/options.c
src/shared/options.h
src/test/test-options.c

index 74f697edbe921d3b866ee9b25d2dbcdf9c4f1216,227ba8ffa352227bf281b67f78e139f893b9df4e..01684fc1fced5170499681eaec6ef9ca035761c7
@@@ -306,15 -388,19 +388,16 @@@ size_t option_parser_get_n_args(const O
          return state->argc - state->positional_offset;
  }
  
 -char* option_get_synopsis(const char *prefix, const Option *opt, const char *joiner, bool show_metavar) {
 +char* option_get_synopsis(const Option *opt, const char *joiner, bool show_metavar) {
          assert(opt);
-         assert(!FLAGS_SET(opt->flags, OPTION_GROUP_MARKER));  /* A group marker should not be displayed */
+         assert(!(opt->flags & (OPTION_NAMESPACE_MARKER |
+                                OPTION_GROUP_MARKER)));  /* The markers should not be displayed */
  
 -        if (!prefix)
 -                prefix = "";
 -
          if (opt->flags & (OPTION_HELP_ENTRY_VERBATIM | OPTION_POSITIONAL_ENTRY))
 -                return strjoin(prefix, ASSERT_PTR(opt->long_code));
 +                return strdup(ASSERT_PTR(opt->long_code));
  
          /* The option formatted appropriately for --help strings, error messages, and similar:
 -         *   <prefix>-<short><joiner>--<long>=[<metavar>]
 +         *   -<short><joiner>--<long>=[<metavar>]
           * "=" is shown only when a long form is defined: -l --long=ARG, --long=ARG, -s ARG.
           * The joiner arg is used between the short and long forms.
           * As a special case, if the option has no long form and show_metavar is true,
index f9913951f425177492616c85df1cb9506c88439e,7bb73dd5811c2edbdb627f8d7de305284a3a879e..5f55dd5d19fa752920e3105640d0266c38ec1ced
@@@ -191,14 -226,17 +226,17 @@@ char* option_parser_consume_next_arg(Op
  
  char** option_parser_get_args(const OptionParser *state);
  size_t option_parser_get_n_args(const OptionParser *state);
 -char* option_get_synopsis(const char *prefix, const Option *opt, const char *joiner, bool show_metavar);
 +char* option_get_synopsis(const Option *opt, const char *joiner, bool show_metavar);
  
- int _option_parser_get_help_table(
+ int _option_parser_get_help_table_full(
                  const Option options[],
                  const Option options_end[],
+                 const char *namespace,
                  const char *group,
                  Table **ret);
+ #define option_parser_get_help_table_full(namespace, group, ret)        \
+         _option_parser_get_help_table_full(ALIGN_PTR(__start_SYSTEMD_OPTIONS), __stop_SYSTEMD_OPTIONS, namespace, group, ret)
  #define option_parser_get_help_table_group(group, ret)                  \
-         _option_parser_get_help_table(ALIGN_PTR(__start_SYSTEMD_OPTIONS), __stop_SYSTEMD_OPTIONS, group, ret)
+         option_parser_get_help_table_full(/* namespace= */ NULL, group, ret)
  #define option_parser_get_help_table(ret)                               \
          option_parser_get_help_table_group(/* group= */ NULL, ret)
Simple merge