diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/markdown/inlines.go | 4 | ||||
-rw-r--r-- | utils/markdown/text_range_test.go | 11 |
2 files changed, 10 insertions, 5 deletions
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) { |