From f29799d3b185c255f0366a56920c43fa6c7f70a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jeromos=20Kov=C3=A1cs?= Date: Wed, 16 Apr 2025 17:13:13 +0200 Subject: [PATCH] feat(utils): add and use 'to_upper' util --- include/Arg.hpp | 2 +- include/utils.hpp | 7 ++++++- src/Parser.cpp | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/Arg.hpp b/include/Arg.hpp index 4809ff1..2ea3f92 100644 --- a/include/Arg.hpp +++ b/include/Arg.hpp @@ -107,7 +107,7 @@ class Arg { // auto_env_name_ // [[nodiscard]] inline const std::string get__auto_env_name() const { // std::string env_name = PROGRAM_NAME() + '_' + this->get__name(); - // std::transform(env_name.begin(), env_name.end(), env_name.begin(), [](const unsigned char& c) { return std::toupper(c); }); + // to_upper(env_name); // return env_name; // } diff --git a/include/utils.hpp b/include/utils.hpp index cfd0dec..387a618 100644 --- a/include/utils.hpp +++ b/include/utils.hpp @@ -1,9 +1,10 @@ #pragma once +#include #include +#include #include #include -#include template inline T ok_or(std::optional opt, E&& err) { @@ -44,3 +45,7 @@ inline void print_indent(std::ostream& os, int indent_level) { for (int i = 0; i < indent_level; ++i) os << '\t'; } + +inline void to_upper(std::string &s) { + std::ranges::transform(s, s.begin(), [](const unsigned char& c) { return std::toupper(c); }); +} diff --git a/src/Parser.cpp b/src/Parser.cpp index dcdfc44..31c44e0 100644 --- a/src/Parser.cpp +++ b/src/Parser.cpp @@ -63,7 +63,7 @@ void ClapParser::check_env() { for (auto& arg : args_) { if (arg.get__auto_env()) { std::string env_name = this->program_name_ + '_' + arg.get__name(); - std::transform(env_name.begin(), env_name.end(), env_name.begin(), [](const unsigned char& c) { return std::toupper(c); }); + to_upper(env_name); auto value_from_env = std::getenv(env_name.c_str()); if (value_from_env) { arg.set__value(value_from_env);