aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zencore/string.cpp')
-rw-r--r--src/zencore/string.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/zencore/string.cpp b/src/zencore/string.cpp
index df7d71250..44f78aa75 100644
--- a/src/zencore/string.cpp
+++ b/src/zencore/string.cpp
@@ -543,6 +543,40 @@ template class StringBuilderImpl<wchar_t>;
//////////////////////////////////////////////////////////////////////////
void
+StringBuilderBase::AppendPaddedInt(int64_t Value, int MinWidth)
+{
+ char Buf[24];
+ char* End = Buf + sizeof(Buf);
+ char* Ptr = End;
+ bool Negative = Value < 0;
+ uint64_t Abs = Negative ? uint64_t(-Value) : uint64_t(Value);
+ do
+ {
+ *--Ptr = '0' + char(Abs % 10);
+ Abs /= 10;
+ } while (Abs > 0);
+ while ((End - Ptr) < MinWidth)
+ {
+ *--Ptr = '0';
+ }
+ if (Negative)
+ {
+ *--Ptr = '-';
+ }
+ AppendRange(Ptr, End);
+}
+
+void
+StringBuilderBase::AppendFill(char C, size_t Count)
+{
+ EnsureCapacity(Count);
+ std::memset(m_CurPos, C, Count);
+ m_CurPos += Count;
+}
+
+//////////////////////////////////////////////////////////////////////////
+
+void
UrlDecode(std::string_view InUrl, StringBuilderBase& OutUrl)
{
std::string_view::size_type i = 0;