From 2a15178bb75b4d23d601919cd00612da178938f6 Mon Sep 17 00:00:00 2001 From: Sean Robinson Date: Fri, 23 Sep 2022 07:44:33 -0700 Subject: [PATCH] Include canonical argument name in nargs range validation error The name of a positional argument is never used. Closes #208 Signed-off-by: Sean Robinson --- include/argparse/argparse.hpp | 2 ++ test/test_positional_arguments.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index 5e826c5..9465827 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -758,6 +758,8 @@ private: std::stringstream stream; if (!m_used_name.empty()) { stream << m_used_name << ": "; + } else { + stream << m_names.front() << ": "; } if (m_num_args_range.is_exact()) { stream << m_num_args_range.get_min(); diff --git a/test/test_positional_arguments.cpp b/test/test_positional_arguments.cpp index 0875669..cfee488 100644 --- a/test/test_positional_arguments.cpp +++ b/test/test_positional_arguments.cpp @@ -18,7 +18,7 @@ TEST_CASE("Missing expected positional argument" * argparse::ArgumentParser program("test"); program.add_argument("input"); REQUIRE_THROWS_WITH_AS(program.parse_args({"test"}), - "1 argument(s) expected. 0 provided.", + "input: 1 argument(s) expected. 0 provided.", std::runtime_error); }