shared/options: quote the metavar in --help output

imdsd uses --extra-header='NAME: VALUE'. We could include the quotes
in the metavar string, but I think it's nicer to only do that in the
printed output, so that later, when we add introspection, the value
there will not include the quotes.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2026-04-07 10:55:52 +02:00
parent 6adc9abc4a
commit e59fea0088
+3
View File
@@ -297,6 +297,7 @@ int _option_parser_get_help_table(
* "=" is shown only when a long option is defined: -l --long=ARG, --long=ARG, -s ARG.
*/
bool need_eq = option_takes_arg(opt) && opt->long_code;
bool need_quote = opt->metavar && strchr(opt->metavar, ' ');
_cleanup_free_ char *s = strjoin(
" ",
sc,
@@ -305,7 +306,9 @@ int _option_parser_get_help_table(
strempty(opt->long_code),
option_arg_optional(opt) ? "[" : "",
need_eq ? "=" : "",
need_quote ? "'" : "",
strempty(opt->metavar),
need_quote ? "'" : "",
option_arg_optional(opt) ? "]" : "");
if (!s)
return log_oom();