diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/blocks.c | 8 | ||||
-rw-r--r-- | src/html.c | 5 | ||||
-rw-r--r-- | src/node.c | 7 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/blocks.c b/src/blocks.c index 7648c96..18a6536 100644 --- a/src/blocks.c +++ b/src/blocks.c @@ -215,7 +215,6 @@ finalize(cmark_parser *parser, cmark_node* b, int line_number) if (!b->as.code.fenced) { // indented code remove_trailing_blank_lines(&b->string_content); strbuf_putc(&b->string_content, '\n'); - break; } else { // first line of contents becomes info @@ -231,8 +230,13 @@ finalize(cmark_parser *parser, cmark_node* b, int line_number) strbuf_trim(&b->as.code.info); strbuf_unescape(&b->as.code.info); - break; } + b->as.literal = chunk_buf_detach(&b->string_content); + break; + + case NODE_HTML: + b->as.literal = chunk_buf_detach(&b->string_content); + break; case NODE_LIST: // determine tight/loose status b->as.list.tight = true; // tight by default @@ -153,14 +153,13 @@ S_render_node(cmark_node *node, cmark_event_type ev_type, void *vstate) strbuf_puts(html, "\">"); } - escape_html(html, node->string_content.ptr, node->string_content.size); + escape_html(html, node->as.literal.data, node->as.literal.len); strbuf_puts(html, "</code></pre>\n"); break; case CMARK_NODE_HTML: cr(html); - strbuf_put(html, node->string_content.ptr, - node->string_content.size); + strbuf_put(html, node->as.literal.data, node->as.literal.len); break; case CMARK_NODE_HRULE: @@ -42,10 +42,12 @@ void S_free_nodes(cmark_node *e) switch (e->type){ case NODE_CODE_BLOCK: strbuf_free(&e->as.code.info); + chunk_free(&e->as.literal); break; case NODE_TEXT: case NODE_INLINE_HTML: case NODE_CODE: + case NODE_HTML: chunk_free(&e->as.literal); break; case NODE_LINK: @@ -183,8 +185,6 @@ cmark_node_get_string_content(cmark_node *node) { switch (node->type) { case NODE_CODE_BLOCK: case NODE_HTML: - return strbuf_cstr(&node->string_content); - case NODE_TEXT: case NODE_INLINE_HTML: case NODE_CODE: @@ -206,9 +206,6 @@ cmark_node_set_string_content(cmark_node *node, const char *content) { switch (node->type) { case NODE_CODE_BLOCK: case NODE_HTML: - strbuf_sets(&node->string_content, content); - return 1; - case NODE_TEXT: case NODE_INLINE_HTML: case NODE_CODE: |