mity / md4c

C Markdown parser. Fast. SAX-like interface. Compliant to CommonMark specification.
MIT License
755 stars 138 forks source link

Incorrect parsing of difficult emphasis cases #217

Closed mity closed 5 months ago

mity commented 5 months ago

(Taken from https://github.com/commonmark/cmark/blob/623aba25123775113d44d1d98f82cf7d3800889b/test/regression.txt#L215)

Input:

__!_!__

__!x!__

**!*!**

---

_*__*_*

_*xx*_*

_*__-_-

_*xx-_-

Produced:

<p><em><em>!</em>!</em>_</p>
<p><strong>!x!</strong></p>
<p><em><em>!</em>!</em>*</p>
<hr>
<p><em>*</em><em>*</em>*</p>
<p><em><em>xx</em></em>*</p>
<p><em>*</em><em>-</em>-</p>
<p><em>*xx-</em>-</p>

Expected:

<p><strong>!_!</strong></p>
<p><strong>!x!</strong></p>
<p><strong>!*!</strong></p>
<hr>
<p><em><em>__</em></em>*</p>
<p><em><em>xx</em></em>*</p>
<p><em>*__-</em>-</p>
<p><em>*xx-</em>-</p>