From cb1f4fffd9c57be8c571649645487700ebc54cef Mon Sep 17 00:00:00 2001 From: King_DuckZ Date: Thu, 22 Aug 2013 12:21:03 +0200 Subject: [PATCH] version switch works properly now. version has precedence over help as well as over missing parameters. --- wordref/src/main.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/wordref/src/main.cpp b/wordref/src/main.cpp index 6178690..8e8ce97 100644 --- a/wordref/src/main.cpp +++ b/wordref/src/main.cpp @@ -75,12 +75,19 @@ namespace { boost::program_options::store(boost::program_options::command_line_parser(parArgc, parArgv).options(commandLine).positional(positionals).run(), parVarMap); boost::program_options::notify(parVarMap); bool shownSomething = false; - if (parVarMap.count("help") or parVarMap.count("source-lang") != 1 or - parVarMap.count("dest-lang") != 1 or parVarMap.count("word") == 0) { - std::cout << desc << "\n"; - shownSomething = true; + + if (parVarMap.count("version") == 0) { + const bool enoughParams = static_cast( + parVarMap.count("source-lang") == 1 and + parVarMap.count("dest-lang") == 1 and + parVarMap.count("word") > 0 + ); + if (parVarMap.count("help") or not enoughParams) { + std::cout << desc << "\n"; + shownSomething = true; + } } - else if (parVarMap.count("version")) { + else { std::cout << APP_NAME << " v" << APP_VER_MAJOR << "." << APP_VER_MINOR << "." << APP_VER_REVISION << "\n"; std::cout << "rev: " << APP_VER_GIT << "\n"; shownSomething = true;