Skip to content

don't truncate fence_length to 255 in open_new_blocks - #653

Open
zayeem06 wants to merge 1 commit into
commonmark:masterfrom
zayeem06:long-code-fence
Open

zayeem06 wants to merge 1 commit into
commonmark:masterfrom
zayeem06:long-code-fence

Conversation

@zayeem06

Copy link
Copy Markdown
Contributor

open_new_blocks stores the opening fence length in a uint8_t and clamps it to 255, so a fence of 256 or more backticks is closed by any line of 255 backticks, where the spec and commonmark.js keep the block open. That breaks the commonmark round trip: a code block containing a 300 backtick line followed by <script> is rendered with a 301 backtick fence, and parsing that output back ends the code block at the 300 backtick line and turns the script into a live HTML block. Widen fence_length to int and drop the clamp; the union is still 16 bytes so sizeof(cmark_node) stays at 104, and an api_test case covers the 256/255 case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant