diff options
author | Nick Wellnhofer <wellnhofer@aevum.de> | 2020-01-18 22:27:13 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2020-01-23 08:25:54 -0800 |
commit | 3acbdf0965859c55fa36c65a4c0e17e92012687c (patch) | |
tree | 11cb19bc51d83d159f54d5a15be0533c4dfb3d96 /src/html.c | |
parent | df7ef9ed7b5f418897df557c9de88eaba2174703 (diff) |
Use C string instead of chunk for code info and literal
Use zero-terminated C strings instead of cmark_chunks without storing
the length. The length of code literals will be readded in a later
commit. strlen overhead for code info should be negligible.
Reduces size of struct cmark_node by 8 bytes.
Diffstat (limited to 'src/html.c')
-rw-r--r-- | src/html.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -146,25 +146,26 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, case CMARK_NODE_CODE_BLOCK: cr(html); - if (node->as.code.info.len == 0) { + if (node->as.code.info == NULL || node->as.code.info[0] == 0) { cmark_strbuf_puts(html, "<pre"); S_render_sourcepos(node, html, options); cmark_strbuf_puts(html, "><code>"); } else { bufsize_t first_tag = 0; - while (first_tag < node->as.code.info.len && - !cmark_isspace(node->as.code.info.data[first_tag])) { + while (node->as.code.info[first_tag] && + !cmark_isspace(node->as.code.info[first_tag])) { first_tag += 1; } cmark_strbuf_puts(html, "<pre"); S_render_sourcepos(node, html, options); cmark_strbuf_puts(html, "><code class=\"language-"); - escape_html(html, node->as.code.info.data, first_tag); + escape_html(html, node->as.code.info, first_tag); cmark_strbuf_puts(html, "\">"); } - escape_html(html, node->as.code.literal.data, node->as.code.literal.len); + escape_html(html, node->as.code.literal, + strlen((char *)node->as.code.literal)); cmark_strbuf_puts(html, "</code></pre>\n"); break; |