From 2ab47054758b10ff282619c52280b0d02f885f1e Mon Sep 17 00:00:00 2001 From: tastytea Date: Mon, 24 May 2021 05:45:42 +0200 Subject: [PATCH] Make --regexp required, show help if it is not given. --- src/options.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/options.cpp b/src/options.cpp index f6912d6..74539e8 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -61,8 +62,8 @@ po::variables_map parse_options(int argc, char *argv[]) ("ignore-case,i", translate("Ignore case distinctions in pattern and data.") .str().data()) - ("regexp,e", po::value>()->composing() - ->value_name(translate("PATTERN")), + ("regexp,e", po::value>() + ->value_name(translate("PATTERN"))->composing()->required(), translate("Use additional PATTERN for matching.").str().data()) ; @@ -89,7 +90,15 @@ po::variables_map parse_options(int argc, char *argv[]) po::store(po::parse_config_file(configfile, options_visible, true), vm); configfile.close(); - po::notify(vm); + try + { + po::notify(vm); + } + catch (const boost::program_options::required_option &e) + { + cout << options_visible; + std::rethrow_exception(std::current_exception()); + } if (vm.count("help") != 0) {