Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions include/miniocpp/utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ std::string Trim(std::string_view str, char ch = ' ');
// whitespaces.
bool CheckNonEmptyString(std::string_view str);

// Replace all occurrences of pattern with replacement
void ReplaceAll(std::string& str, std::string_view pattern, std::string_view replacement);

// ToLower converts string to lower case.
std::string ToLower(const std::string& str);

Expand Down
1 change: 1 addition & 0 deletions src/baseclient.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1459,6 +1459,7 @@ RemoveObjectsResponse BaseClient::RemoveObjects(RemoveObjectsApiArgs args) {
if (args.quiet) ss << "<Quiet>true</Quiet>";
for (auto& object : args.objects) {
ss << "<Object>";
utils::ReplaceAll(object.name,"&","&amp;");
ss << "<Key>" << object.name << "</Key>";
if (!object.version_id.empty()) {
ss << "<VersionId>" << object.version_id << "</VersionId>";
Expand Down
10 changes: 9 additions & 1 deletion src/utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,15 @@ std::string Trim(std::string_view str, char ch) {
bool CheckNonEmptyString(std::string_view str) {
return !str.empty() && Trim(str) == str;
}

void ReplaceAll(std::string& str, std::string_view pattern, std::string_view replacement){
size_t start{0};
while ((start = str.find(pattern, start)) !=
std::string::npos)
{
str.replace(start, pattern.length(), replacement);
start += replacement.length();
}
}
std::string ToLower(const std::string& str) {
std::string s(str);
std::transform(s.begin(), s.end(), s.begin(), ::tolower);
Expand Down