From 9c9591b098d7c89ef484e1105d9b64a59de69f5e Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Sat, 26 Dec 2020 09:26:10 -0800 Subject: [PATCH] fix(core): Fixes wrap not slicing properly (#362) - [X] Fixes wrap not slicing properly Bumps release version --- .../Server.Tests/Tests/Utility/StringHelperTests.cs | 2 ++ Projects/Server/Utilities/StringHelpers.cs | 12 +++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Projects/Server.Tests/Tests/Utility/StringHelperTests.cs b/Projects/Server.Tests/Tests/Utility/StringHelperTests.cs index 5bb5e1d24..c97ac757e 100644 --- a/Projects/Server.Tests/Tests/Utility/StringHelperTests.cs +++ b/Projects/Server.Tests/Tests/Utility/StringHelperTests.cs @@ -43,6 +43,8 @@ namespace Server.Tests [Theory] [InlineData("this is a sentence that will probably wrap around a few times because it is long", 10, 6)] + [InlineData("An Unnamed House", 10, 6)] + [InlineData("Batville", 10, 6)] public void TestWrap(string sentence, int perLine, int maxLines) { var expected = OldWrap(sentence, perLine, maxLines); diff --git a/Projects/Server/Utilities/StringHelpers.cs b/Projects/Server/Utilities/StringHelpers.cs index 2b8a61115..7d044d3d4 100644 --- a/Projects/Server/Utilities/StringHelpers.cs +++ b/Projects/Server/Utilities/StringHelpers.cs @@ -188,17 +188,15 @@ namespace Server var newLineLength = lineLength + spaceIndex; - if (newLineLength == perLine || newLineLength == span.Length - 1) + if (newLineLength == perLine || newLineLength == span.Length) { - // Could be the end of the string - var length = span[newLineLength] == ' ' ? newLineLength - 1 : newLineLength; - list.Add(span.Slice(0, length).ToString()); - if (list.Count == maxLines) + list.Add(span.Slice(0, newLineLength).ToString()); + if (list.Count == maxLines || newLineLength == span.Length) { break; } - span = span.Slice(newLineLength); + span = span.Slice(newLineLength + 1); lineLength = 0; } else if (newLineLength < perLine) @@ -235,7 +233,7 @@ namespace Server index += perLine; } - span = span.Slice(lineLength); + span = span.Slice(newLineLength - lineLength); } }