Skip to content

Commit

Permalink
Merge pull request #9435
Browse files Browse the repository at this point in the history
89ad8ac epee: string_tools: keep full path in cut_off_extension (tobtoht)
c51ca53 epee: string_tools: remove dot from get_extension (tobtoht)
  • Loading branch information
luigi1111 committed Oct 14, 2024
2 parents 7df0d9b + 89ad8ac commit 893916a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
9 changes: 7 additions & 2 deletions contrib/epee/src/string_tools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,13 +178,18 @@ namespace string_tools

std::string get_extension(const std::string& str)
{
return boost::filesystem::path(str).extension().string();
std::string ext_with_dot = boost::filesystem::path(str).extension().string();

if (ext_with_dot.empty())
return {};

return ext_with_dot.erase(0, 1);
}

//----------------------------------------------------------------------------
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
Expand Down
15 changes: 15 additions & 0 deletions tests/unit_tests/epee_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1443,6 +1443,21 @@ TEST(StringTools, GetIpInt32)
EXPECT_EQ(htonl(0xff0aff00), ip);
}

TEST(StringTools, GetExtension)
{
EXPECT_EQ(std::string{}, epee::string_tools::get_extension(""));
EXPECT_EQ(std::string{}, epee::string_tools::get_extension("."));
EXPECT_EQ(std::string{"keys"}, epee::string_tools::get_extension("wallet.keys"));
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");
Expand Down

0 comments on commit 893916a

Please sign in to comment.