From ac8e225cd3a73ade37217c9fbd623ea497bb6f78 Mon Sep 17 00:00:00 2001
From: yuin
Date: Mon, 2 Dec 2019 17:13:37 +0900
Subject: [PATCH] Fix invalid handling of consecutive code spans
---
_test/extra.txt | 16 ++++++++++++++++
parser/code_span.go | 2 +-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/_test/extra.txt b/_test/extra.txt
index 178bb10..74ac61f 100644
--- a/_test/extra.txt
+++ b/_test/extra.txt
@@ -8,6 +8,9 @@
B
//= = = = = = = = = = = = = = = = = = = = = = = =//
+
+
+
2
//- - - - - - - - -//
**test**\
@@ -20,6 +23,9 @@ testtest
testtest
testtest
//= = = = = = = = = = = = = = = = = = = = = = = =//
+
+
+
3
//- - - - - - - - -//
>* >
@@ -39,3 +45,13 @@ testtest
3
//= = = = = = = = = = = = = = = = = = = = = = = =//
+
+
+
+4
+//- - - - - - - - -//
+`test`a`test`
+//- - - - - - - - -//
+testatest
+//= = = = = = = = = = = = = = = = = = = = = = = =//
+
diff --git a/parser/code_span.go b/parser/code_span.go
index afb2b7f..1365236 100644
--- a/parser/code_span.go
+++ b/parser/code_span.go
@@ -42,7 +42,7 @@ func (s *codeSpanParser) Parse(parent ast.Node, block text.Reader, pc Context) a
for ; i < len(line) && line[i] == '`'; i++ {
}
closure := i - oldi
- if closure == opener && (i+1 >= len(line) || line[i+1] != '`') {
+ if closure == opener && (i >= len(line) || line[i] != '`') {
segment = segment.WithStop(segment.Start + i - closure)
if !segment.IsEmpty() {
node.AppendChild(node, ast.NewRawTextSegment(segment))