aboutsummaryrefslogtreecommitdiff
path: root/args.hxx
diff options
context:
space:
mode:
authorPavel Belikov <pavel.fuchs.belikov@gmail.com>2017-11-14 22:47:49 +0300
committerPavel Belikov <pavel.fuchs.belikov@gmail.com>2017-11-14 22:47:49 +0300
commit029dd296063c0810d40830567216c92b8cca0f79 (patch)
tree4d77fce4d5c42caa4ca8cd376ad67f0fe2d2c70d /args.hxx
parentadd leading whitespace support in Wrap (diff)
downloadargs.hxx-029dd296063c0810d40830567216c92b8cca0f79.tar.xz
fix HelpParams::showValueNameOnce
Diffstat (limited to 'args.hxx')
-rw-r--r--args.hxx13
1 files changed, 5 insertions, 8 deletions
diff --git a/args.hxx b/args.hxx
index a381435..7af24c4 100644
--- a/args.hxx
+++ b/args.hxx
@@ -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;