Fix invalid markdown text ranges (#9126)

second Range value is the end pos, not the length... 🙈
This commit is contained in:
Adrian
2018-07-18 19:55:50 -07:00
committed by Christopher Speller
parent 5a2d46c6cb
commit a575411f15
2 changed files with 10 additions and 5 deletions
+2 -2
View File
@@ -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},
})
}
}
+8 -3
View File
@@ -86,9 +86,14 @@ func TestTextRanges(t *testing.T) {
ExpectedValues: []string{"&amp 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) {