From 8a283fea75a1a7e18ea2c44c36c5f18cb38da87d Mon Sep 17 00:00:00 2001 From: Booklordofthedings Date: Mon, 27 Nov 2023 17:02:48 +0100 Subject: [PATCH 1/2] added remnant --- BeefLibs/corlib/src/String.bf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/BeefLibs/corlib/src/String.bf b/BeefLibs/corlib/src/String.bf index 5151be89..29f9b27e 100644 --- a/BeefLibs/corlib/src/String.bf +++ b/BeefLibs/corlib/src/String.bf @@ -3113,6 +3113,14 @@ namespace System return mMatchPos < mStrLen && (!mSplitOptions.HasFlag(StringSplitOptions.RemoveEmptyEntries) || mStrLen != 0); } } + + public StringView Remnant + { + get + { + return .(mPtr + mMatchPos + 1, mStrLen - mMatchPos); + } + } public bool MoveNext() mut { From 82bfdfe52e52d1768cf3c0a463d0bb50df8d28a9 Mon Sep 17 00:00:00 2001 From: Booklordofthedings Date: Mon, 27 Nov 2023 17:19:19 +0100 Subject: [PATCH 2/2] overflow fix --- BeefLibs/corlib/src/String.bf | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/BeefLibs/corlib/src/String.bf b/BeefLibs/corlib/src/String.bf index 29f9b27e..799ece55 100644 --- a/BeefLibs/corlib/src/String.bf +++ b/BeefLibs/corlib/src/String.bf @@ -3118,7 +3118,10 @@ namespace System { get { - return .(mPtr + mMatchPos + 1, mStrLen - mMatchPos); + int offset = 0; + if(mMatchPos < mStrLen) + offset = 1; + return .(mPtr + mMatchPos + offset, mStrLen - (mMatchPos+offset)); } } @@ -3306,6 +3309,17 @@ namespace System } } + public StringView Remnant + { + get + { + int offset = 0; + if(mMatchPos < mStrLen) + offset = mMatchLen; + return .(mPtr + mMatchPos + offset, mStrLen - (mMatchPos+offset)); + } + } + public bool MoveNext() mut { if (mCurCount >= mMaxCount)