diff --git a/contrib/epee/src/string_tools.cpp b/contrib/epee/src/string_tools.cpp index 7ab3002b9a..43f7aca9d3 100644 --- a/contrib/epee/src/string_tools.cpp +++ b/contrib/epee/src/string_tools.cpp @@ -212,7 +212,7 @@ namespace string_tools //---------------------------------------------------------------------------- std::string cut_off_extension(const std::string& str) { - return boost::filesystem::path(str).stem().string(); + return boost::filesystem::path(str).replace_extension("").string(); } #ifdef _WIN32 diff --git a/tests/unit_tests/epee_utils.cpp b/tests/unit_tests/epee_utils.cpp index 583b3642f3..cc32f8bf32 100644 --- a/tests/unit_tests/epee_utils.cpp +++ b/tests/unit_tests/epee_utils.cpp @@ -1435,6 +1435,13 @@ TEST(StringTools, GetExtension) EXPECT_EQ(std::string{"3"}, epee::string_tools::get_extension("1.2.3")); } +TEST(StringTools, CutOffExtension) +{ + EXPECT_EQ(std::string{}, epee::string_tools::cut_off_extension("")); + EXPECT_EQ(std::string{"/home/user/Monero/wallets/wallet"}, epee::string_tools::cut_off_extension("/home/user/Monero/wallets/wallet")); + EXPECT_EQ(std::string{"/home/user/Monero/wallets/wallet"}, epee::string_tools::cut_off_extension("/home/user/Monero/wallets/wallet.keys")); +} + TEST(NetUtils, IPv4NetworkAddress) { static_assert(epee::net_utils::ipv4_network_address::get_type_id() == epee::net_utils::address_type::ipv4, "bad ipv4 type id");