Skip to content

Commit fc71bb0

Browse files
committed
Fix RichTextLength with close tags in succession
The RichTextSubStringMaker::Consume function was returning a wrong value when the function was called by itself. It was returning `true` in the situation. This commit fixes it by returning the recursive call's return value.
1 parent 3394b08 commit fc71bb0

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

Assets/RichTextHelper/RichTextHelper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ public bool Consume()
117117
}
118118
if (IsConsumable())
119119
{
120-
Consume();
121-
return true;
120+
return Consume();
122121
}
123122
else
124123
{

Assets/test/RichTextHelperTest.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public void SimpleTest() {
3232

3333
var sampleText = "UnityTest behaves ";
3434
Assert.AreEqual(sampleText.RichTextSubString(sampleText.Length), sampleText);
35+
Assert.AreEqual(sampleText.RichTextLength(), sampleText.Length);
3536
}
3637

3738
[Test]
@@ -40,6 +41,7 @@ public void TagTest()
4041
var sampleTagText = "<color=#000>blah</color>x";
4142
Assert.AreEqual(sampleTagText.RichTextSubString(5), sampleTagText);
4243
Assert.AreEqual(sampleTagText.RichTextSubString(1), "<color=#000>b</color>");
44+
Assert.AreEqual(sampleTagText.RichTextLength(), 5);
4345
}
4446

4547
[Test]
@@ -51,6 +53,7 @@ public void NestedTest()
5153
Assert.AreEqual(sampleTagText.RichTextSubString(2), "<color=#000>a<i>b</i></color>");
5254
Assert.AreEqual(sampleTagText.RichTextSubString(3), "<color=#000>a<i>b<b>c</b></i></color>");
5355
Assert.AreEqual(sampleTagText.RichTextSubString(4), "<color=#000>a<i>b<b>c</b>d</i></color>");
56+
Assert.AreEqual(sampleTagText.RichTextLength(), 5);
5457
}
5558

5659
[Test]
@@ -62,5 +65,6 @@ public void CloseTagIsLast()
6265
Assert.AreEqual(sampleTagText.RichTextSubString(2), "<color=#000>a<i>b</i></color>");
6366
Assert.AreEqual(sampleTagText.RichTextSubString(3), "<color=#000>a<i>b<b>c</b></i></color>");
6467
Assert.AreEqual(sampleTagText.RichTextSubString(4), "<color=#000>a<i>b<b>c</b>d</i></color>");
68+
Assert.AreEqual(sampleTagText.RichTextLength(), 4);
6569
}
6670
}

0 commit comments

Comments
 (0)