diff options
author | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2017-11-14 22:47:49 +0300 |
---|---|---|
committer | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2017-11-14 22:47:49 +0300 |
commit | 029dd296063c0810d40830567216c92b8cca0f79 (patch) | |
tree | 4d77fce4d5c42caa4ca8cd376ad67f0fe2d2c70d | |
parent | add leading whitespace support in Wrap (diff) | |
download | args.hxx-029dd296063c0810d40830567216c92b8cca0f79.tar.xz |
fix HelpParams::showValueNameOnce
-rw-r--r-- | args.hxx | 13 | ||||
-rw-r--r-- | test.cxx | 2 |
2 files changed, 6 insertions, 9 deletions
@@ -867,27 +867,24 @@ namespace args std::string flags; const auto flagStrings = matcher.GetFlagStrings(); const bool useValueNameOnce = flagStrings.size() == 1 ? false : params.useValueNameOnce; - for (const auto &flag : flagStrings) + for (auto it = flagStrings.begin(); it != flagStrings.end(); ++it) { - if (!flags.empty()) + auto &flag = *it; + if (it != flagStrings.begin()) { flags += ", "; } flags += flag.isShort ? params.shortPrefix : params.longPrefix; flags += flag.str(); - if (!postfix.empty() && !useValueNameOnce) + + if (!postfix.empty() && (!useValueNameOnce || it + 1 == flagStrings.end())) { flags += flag.isShort ? params.shortSeparator : params.longSeparator; flags += "[" + postfix + "]"; } } - if (!postfix.empty() && useValueNameOnce) - { - flags += " [" + postfix + "]"; - } - std::get<0>(description) = std::move(flags); std::get<1>(description) = help; std::get<2>(description) = indentLevel; @@ -993,7 +993,7 @@ TEST_CASE("HelpParams work as expected", "[args]") Options - -f, --foo [name] description + -f, --foo=[name] description -g[name] description d1 d2 |