From 8a38459f9a2be2b17da433fc4cce0771a78c96e3 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Fri, 18 Mar 2022 13:04:09 +1000 Subject: [PATCH] cmdopt2/parser: render argument placeholders during `usage` --- cmdopt2/parser.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/cmdopt2/parser.cpp b/cmdopt2/parser.cpp index b9387d7c..b2fffd2b 100644 --- a/cmdopt2/parser.cpp +++ b/cmdopt2/parser.cpp @@ -211,15 +211,24 @@ usage ( for (auto const &arg: keyword) { auto const &delimiters = arg.required ? REQUIRED : OPTIONAL; - if (arg.short_) - fmt::print (output, " {}-{}{}", delimiters[0], '-', *arg.short_, delimiters[1]); - if (arg.long_) - fmt::print (output, " {}--{}{}", delimiters[0], "--", *arg.long_, delimiters[1]); + if (arg.short_) { + fmt::print (output, FMT_STRING (" {}-{}"), delimiters[0], *arg.short_); + if (arg.acceptor1) + fmt::print (output, FMT_STRING (" <{}>"), arg.name); + fmt::print (output, FMT_STRING ("{}"), delimiters[1]); + } + + if (arg.long_) { + fmt::print (output, FMT_STRING (" {}--{}"), delimiters[0], *arg.long_); + if (arg.acceptor1) + fmt::print (output, FMT_STRING (" <{}>"), arg.name); + fmt::print (output, FMT_STRING ("{}"), delimiters[1]); + } } for (auto const &arg: positional) { auto const &delimiters = arg.required ? REQUIRED : OPTIONAL; - fmt::print (output, " {}{}{}", delimiters[0], arg.name, delimiters[1]); + fmt::print (output, FMT_STRING (" {}{}{}"), delimiters[0], arg.name, delimiters[1]); } fmt::print (output, "\n");