From 42e164e0f9f192b7b1fec80e42d73cdfbe2ed8f8 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Thu, 13 Nov 2025 00:28:07 +0100 Subject: [PATCH 1/5] Refactor: extract common code to outer block --- include/argparse.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index fa8950f..99b13dd 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1363,14 +1363,14 @@ namespace argparse { if (auto & token = *it; token.m_token.starts_with("--")) { + token.m_consumed = true; + if (auto const pos = token.m_token.find('='); pos != std::string::npos) { - token.m_consumed = true; return token.m_token.substr(pos + 1); } else { - token.m_consumed = true; return ""; } } From 7fed7c8ed29d98283901288753af81f01faf808d Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Thu, 13 Nov 2025 00:29:41 +0100 Subject: [PATCH 2/5] Refactor: simplify code --- include/argparse.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 99b13dd..0eb314b 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1369,10 +1369,8 @@ namespace argparse { return token.m_token.substr(pos + 1); } - else - { - return ""; - } + + return ""; } else { From a36b93e14b8e552d68dbb7781d597536199efe11 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Thu, 13 Nov 2025 00:31:09 +0100 Subject: [PATCH 3/5] Refactor: reduce code nesting --- include/argparse.hpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 0eb314b..8739b2b 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1378,23 +1378,22 @@ namespace argparse { auto const pos = token.m_token.find(name[1]); token.m_token.erase(pos, 1); - if (expects_argument()) + + if (!expects_argument()) { - if (pos == 1) - { - token.m_consumed = true; - return token.m_token.substr(pos); - } - else - { - auto const value = token.m_token.substr(pos); - token.m_token.resize(pos); - return value; - } + return ""; + } + + if (pos == 1) + { + token.m_consumed = true; + return token.m_token.substr(pos); } else { - return ""; + auto const value = token.m_token.substr(pos); + token.m_token.resize(pos); + return value; } } else From 98858fa058ce9da4e1b195031f0a276612be9ed9 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Thu, 13 Nov 2025 00:34:44 +0100 Subject: [PATCH 4/5] Refactor: reduce code nesting --- include/argparse.hpp | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 8739b2b..9266290 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1374,32 +1374,30 @@ namespace argparse } else { - if (token.m_token.size() != 2) + if (token.m_token.size() == 2) { - auto const pos = token.m_token.find(name[1]); - token.m_token.erase(pos, 1); + token.m_consumed = true; + return ""; + } - if (!expects_argument()) - { - return ""; - } + auto const pos = token.m_token.find(name[1]); + token.m_token.erase(pos, 1); - if (pos == 1) - { - token.m_consumed = true; - return token.m_token.substr(pos); - } - else - { - auto const value = token.m_token.substr(pos); - token.m_token.resize(pos); - return value; - } + if (!expects_argument()) + { + return ""; } - else + + if (pos == 1) { token.m_consumed = true; - return ""; + return token.m_token.substr(pos); + } + else + { + auto const value = token.m_token.substr(pos); + token.m_token.resize(pos); + return value; } } } From 2c5934f8e9b866a892ada0ef1d6a5beffbd5cbb3 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Thu, 13 Nov 2025 00:37:52 +0100 Subject: [PATCH 5/5] Refactor: reduce code nesting --- include/argparse.hpp | 48 ++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 9266290..7209cc2 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1361,7 +1361,9 @@ namespace argparse auto consume_name(auto it, std::string_view name) const -> std::string { - if (auto & token = *it; token.m_token.starts_with("--")) + auto & token = *it; + + if (token.m_token.starts_with("--")) { token.m_consumed = true; @@ -1372,33 +1374,31 @@ namespace argparse return ""; } - else + + if (token.m_token.size() == 2) { - if (token.m_token.size() == 2) - { - token.m_consumed = true; - return ""; - } + token.m_consumed = true; + return ""; + } - auto const pos = token.m_token.find(name[1]); - token.m_token.erase(pos, 1); + auto const pos = token.m_token.find(name[1]); + token.m_token.erase(pos, 1); - if (!expects_argument()) - { - return ""; - } + if (!expects_argument()) + { + return ""; + } - if (pos == 1) - { - token.m_consumed = true; - return token.m_token.substr(pos); - } - else - { - auto const value = token.m_token.substr(pos); - token.m_token.resize(pos); - return value; - } + if (pos == 1) + { + token.m_consumed = true; + return token.m_token.substr(pos); + } + else + { + auto const value = token.m_token.substr(pos); + token.m_token.resize(pos); + return value; } }