Skip to content

Commit c51ca53

Browse files
committed
epee: string_tools: remove dot from get_extension
Fixes a regression introduced in monero-project#9254. Previously it did not include the dot.
1 parent 0db9e74 commit c51ca53

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

contrib/epee/src/string_tools.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,12 @@ namespace string_tools
178178

179179
std::string get_extension(const std::string& str)
180180
{
181-
return boost::filesystem::path(str).extension().string();
181+
std::string ext_with_dot = boost::filesystem::path(str).extension().string();
182+
183+
if (ext_with_dot.empty())
184+
return {};
185+
186+
return ext_with_dot.erase(0, 1);
182187
}
183188

184189
//----------------------------------------------------------------------------

tests/unit_tests/epee_utils.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,6 +1443,14 @@ TEST(StringTools, GetIpInt32)
14431443
EXPECT_EQ(htonl(0xff0aff00), ip);
14441444
}
14451445

1446+
TEST(StringTools, GetExtension)
1447+
{
1448+
EXPECT_EQ(std::string{}, epee::string_tools::get_extension(""));
1449+
EXPECT_EQ(std::string{}, epee::string_tools::get_extension("."));
1450+
EXPECT_EQ(std::string{"keys"}, epee::string_tools::get_extension("wallet.keys"));
1451+
EXPECT_EQ(std::string{"3"}, epee::string_tools::get_extension("1.2.3"));
1452+
}
1453+
14461454
TEST(NetUtils, IPv4NetworkAddress)
14471455
{
14481456
static_assert(epee::net_utils::ipv4_network_address::get_type_id() == epee::net_utils::address_type::ipv4, "bad ipv4 type id");

0 commit comments

Comments
 (0)