From a575411f159d3e63b91fd4a03b448d3f52862747 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 19 Jul 2018 04:55:50 +0200 Subject: Fix invalid markdown text ranges (#9126) second Range value is the end pos, not the length... :see_no_evil: --- utils/markdown/inlines.go | 4 ++-- utils/markdown/text_range_test.go | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'utils') diff --git a/utils/markdown/inlines.go b/utils/markdown/inlines.go index 02ef47e24..9198435ee 100644 --- a/utils/markdown/inlines.go +++ b/utils/markdown/inlines.go @@ -427,7 +427,7 @@ func (p *inlineParser) parseCharacterReference() { if semicolon := strings.IndexByte(p.raw[p.position:], ';'); semicolon == -1 { p.inlines = append(p.inlines, &Text{ Text: "&", - Range: Range{absPos, 1}, + Range: Range{absPos, absPos + 1}, }) } else if s := CharacterReference(p.raw[p.position : p.position+semicolon]); s != "" { p.position += semicolon + 1 @@ -438,7 +438,7 @@ func (p *inlineParser) parseCharacterReference() { } else { p.inlines = append(p.inlines, &Text{ Text: "&", - Range: Range{absPos, 1}, + Range: Range{absPos, absPos + 1}, }) } } diff --git a/utils/markdown/text_range_test.go b/utils/markdown/text_range_test.go index 25c13c40d..de3dd0985 100644 --- a/utils/markdown/text_range_test.go +++ b/utils/markdown/text_range_test.go @@ -86,9 +86,14 @@ func TestTextRanges(t *testing.T) { ExpectedValues: []string{"& test"}, }, "notcharref2": { - Markdown: "&mattermost;", - ExpectedRanges: []Range{{0, 12}}, - ExpectedValues: []string{"&mattermost;"}, + Markdown: "this is &mattermost;", + ExpectedRanges: []Range{{0, 20}}, + ExpectedValues: []string{"this is &mattermost;"}, + }, + "standalone-ampersand": { + Markdown: "Hello & World", + ExpectedRanges: []Range{{0, 13}}, + ExpectedValues: []string{"Hello & World"}, }, } { t.Run(name, func(t *testing.T) { -- cgit v1.2.3-1-g7c22