diff --git a/include/CLI/StringTools.hpp b/include/CLI/StringTools.hpp index d27204dd..f1aa04b5 100644 --- a/include/CLI/StringTools.hpp +++ b/include/CLI/StringTools.hpp @@ -108,7 +108,7 @@ std::string trim_copy(const std::string &str) { /// Make a copy of the string and then trim it, any filter string can be used (any char in string is filtered) std::string trim_copy(const std::string &str, const std::string &filter) { std::string s = str; - return rtrim(s, filter); + return trim(s, filter); } /// Print a two part "help" string void format_help(std::stringstream &out, std::string name, std::string description, size_t wid) { diff --git a/tests/HelpersTest.cpp b/tests/HelpersTest.cpp index f0a59fb6..d8580fce 100644 --- a/tests/HelpersTest.cpp +++ b/tests/HelpersTest.cpp @@ -62,6 +62,23 @@ TEST(Trim, VariousFilters) { EXPECT_EQ("cabcabc", CLI::detail::trim(s4, "ab")); } +TEST(Trim, TrimCopy) { + std::string orig{" cabc "}; + std::string trimmed = CLI::detail::trim_copy(orig); + EXPECT_EQ("cabc", trimmed); + EXPECT_NE(orig, trimmed); + CLI::detail::trim(orig); + EXPECT_EQ(trimmed, orig); + + orig = "abcabcabc"; + trimmed = CLI::detail::trim_copy(orig, "ab"); + EXPECT_EQ("cabcabc", trimmed); + EXPECT_NE(orig, trimmed); + CLI::detail::trim(orig, "ab"); + EXPECT_EQ(trimmed, orig); + +} + TEST(Validators, FileExists) { std::string myfile{"TestFileNotUsed.txt"};