diff --git a/Terminal.Gui/Text/StringExtensions.cs b/Terminal.Gui/Text/StringExtensions.cs index b9e72f95f..68de788f7 100644 --- a/Terminal.Gui/Text/StringExtensions.cs +++ b/Terminal.Gui/Text/StringExtensions.cs @@ -67,7 +67,7 @@ public static class StringExtensions foreach (string grapheme in GraphemeHelper.GetGraphemes (str)) { - // Sum all runes' display widths within this grapheme cluster + // Get the maximum rune width within this grapheme cluster int clusterWidth = 0; foreach (var rune in grapheme.EnumerateRunes ()) diff --git a/Tests/UnitTestsParallelizable/Text/StringTests.cs b/Tests/UnitTestsParallelizable/Text/StringTests.cs index 37c945ac5..efbc2e406 100644 --- a/Tests/UnitTestsParallelizable/Text/StringTests.cs +++ b/Tests/UnitTestsParallelizable/Text/StringTests.cs @@ -70,6 +70,21 @@ public class StringTests Assert.Equal (0, str.GetColumns ()); } + [Theory] + [InlineData (null)] + [InlineData ("")] + public void TestGetColumns_Does_Not_Throws_With_Null_And_Empty_String (string? text) + { + if (text is null) + { + Assert.Equal (0, StringExtensions.GetColumns (text!)); + } + else + { + Assert.Equal (0, text.GetColumns ()); + } + } + public class ReadOnlySpanExtensionsTests { [Theory]