From 17c7163c2ae8fc290e70b43d8700b68ef18b1ee1 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 6 Oct 2023 14:03:18 -0700 Subject: Small type system fixes. (#3265) --- source/core/slang-string-util.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'source/core/slang-string-util.cpp') diff --git a/source/core/slang-string-util.cpp b/source/core/slang-string-util.cpp index fb062de76..a6a18d4a0 100644 --- a/source/core/slang-string-util.cpp +++ b/source/core/slang-string-util.cpp @@ -392,6 +392,31 @@ ComPtr StringUtil::createStringBlob(const String& string) return (fromChar == toChar || string.indexOf(fromChar) == Index(-1)) ? string : calcCharReplaced(string.getUnownedSlice(), fromChar, toChar); } +String StringUtil::replaceAll(UnownedStringSlice text, UnownedStringSlice subStr, UnownedStringSlice replacement) +{ + StringBuilder builder; + for (Index i = 0; i < text.getLength();) + { + if (i + subStr.getLength() >= text.getLength()) + { + builder.append(text.subString(i, text.getLength() - i)); + break; + } + if (text.subString(i, subStr.getLength()) == subStr) + { + builder.append(replacement); + i += subStr.getLength(); + } + else + { + builder.append(text[i]); + i++; + } + } + return builder.produceString(); +} + + /* static */void StringUtil::appendStandardLines(const UnownedStringSlice& text, StringBuilder& out) { const char* cur = text.begin(); -- cgit v1.2.3