Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2fe7af01 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix crash in MakeString.EndsWith()"

parents fbcf7e1c 35b994e1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ func (ms *MakeString) TrimRightOne() {

func (ms *MakeString) EndsWith(ch rune) bool {
	s := ms.Strings[len(ms.Strings)-1]
	return s[len(s)-1] == uint8(ch)
	return len(s) > 0 && s[len(s)-1] == uint8(ch)
}

func (ms *MakeString) ReplaceLiteral(input string, output string) {
+30 −0
Original line number Diff line number Diff line
@@ -217,6 +217,36 @@ func TestMakeStringWords(t *testing.T) {
	}
}

var endsWithTestCases = []struct {
	in       *MakeString
	endsWith rune
	expected bool
}{
	{
		in:       genMakeString("foo", "X", "bar ="),
		endsWith: '=',
		expected: true,
	},
	{
		in:       genMakeString("foo", "X", "bar ="),
		endsWith: ':',
		expected: false,
	},
	{
		in:       genMakeString("foo", "X", ""),
		endsWith: '=',
		expected: false,
	},
}

func TestMakeStringEndsWith(t *testing.T) {
	for _, test := range endsWithTestCases {
		if test.in.EndsWith(test.endsWith) != test.expected {
			t.Errorf("with:\n%q\nexpected:\n%t\ngot:\n%t", test.in.Dump(), test.expected, !test.expected)
		}
	}
}

func dumpArray(a []*MakeString) string {
	ret := make([]string, len(a))