From 444ded5c6f9ce05fcc243a299315ce8ae825c80d Mon Sep 17 00:00:00 2001 From: Tom Cowland Date: Tue, 22 Aug 2023 17:53:40 +0100 Subject: [PATCH] fixup! [Core] Use OpenAssetIO-MediaCreation --- src/resolver.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/resolver.cpp b/src/resolver.cpp index 8c9c4ff..e95c661 100644 --- a/src/resolver.cpp +++ b/src/resolver.cpp @@ -3,7 +3,6 @@ #include "resolver.h" -#include #include #include #include @@ -39,6 +38,21 @@ PXR_NAMESPACE_CLOSE_SCOPE namespace { +/* + * Replaces all occurrences of the search string in the subject with + * the supplied replacement. + */ +void replaceAllInString(std::string &subject, const std::string &search, + const std::string &replace) { + const size_t searchLength = search.length(); + const size_t replaceLength = replace.length(); + size_t pos = 0; + while ((pos = subject.find(search, pos)) != std::string::npos) { + subject.replace(pos, searchLength, replace); + pos += replaceLength; + } +} + /* * OpenAssetIO LoggerInterface implementation * @@ -124,8 +138,7 @@ std::string resolveToPath(const openassetio::hostApi::ManagerPtr &manager, } // TODO(tc): Decode % escape sequences properly - static const std::regex kEncodedSpace{"%20"}; - url = std::regex_replace(url, kEncodedSpace, " "); + replaceAllInString(url, "%20", " "); return url.substr(kProtocolSize); }