From 774ad7cbbf70b0c3d97333e9167804086a8c3ec2 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 30 Nov 2020 14:00:41 +0100 Subject: [PATCH] github #5: handle unrecognized command line arguments --- src/mkdwarfs.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mkdwarfs.cpp b/src/mkdwarfs.cpp index 8ce6ed6e..29912744 100644 --- a/src/mkdwarfs.cpp +++ b/src/mkdwarfs.cpp @@ -339,10 +339,19 @@ int mkdwarfs(int argc, char** argv) { // clang-format on po::variables_map vm; + auto parsed = po::parse_command_line(argc, argv, opts); - po::store(po::parse_command_line(argc, argv, opts), vm); + po::store(parsed, vm); po::notify(vm); + auto unrecognized = + po::collect_unrecognized(parsed.options, po::include_positional); + + if (!unrecognized.empty()) { + throw std::runtime_error( + "unrecognized argument(s): " + boost::join(unrecognized, " ")); + } + if (vm.count("help") or !vm.count("input") or !vm.count("output")) { size_t l_dc = 0, l_sc = 0, l_mc = 0, l_ws = 0; for (auto const& l : levels) {