From da1c2ba409a4857ab83f42443419b5fa10790291 Mon Sep 17 00:00:00 2001 From: tastytea Date: Thu, 12 Mar 2020 12:06:31 +0100 Subject: [PATCH] Handle more than one replacement in replace_parameter_in_uri(). --- src/curl_wrapper.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/curl_wrapper.cpp b/src/curl_wrapper.cpp index 510f1c8..9341069 100644 --- a/src/curl_wrapper.cpp +++ b/src/curl_wrapper.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include namespace mastodonpp @@ -30,8 +31,10 @@ namespace mastodonpp using std::get; using std::holds_alternative; using std::any_of; +using std::transform; using std::array; // NOLINT(misc-unused-using-decls) using std::atomic; +using std::toupper; using std::uint8_t; using std::uint16_t; @@ -362,7 +365,15 @@ bool CURLWrapper::replace_parameter_in_uri(string &uri, if (any_of(replace.begin(), replace.end(), [¶meter](const auto &s) { return s == parameter.first; })) { - const auto pos{uri.find('<')}; + const string searchstring{[¶meter] + { + string s{"<"}; + s += parameter.first; + transform(s.begin(), s.end(), s.begin(), + [](const unsigned char c){ return toupper(c); }); + return s; + }()}; + const auto pos{uri.find(searchstring)}; if (pos != string::npos) { uri.replace(pos, parameter.first.size() + 2,