From c41bf11bb38ef513fa53f88b2c80afd1504aaeaf Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 12 Dec 2014 22:12:09 -0800 Subject: Rewrote HTML renderer using cmark_walk. This version is shorter, more readable, and more regular. It should serve as a template for creating new writers. Performance is the same. All tests pass. --- src/node.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/node.c') diff --git a/src/node.c b/src/node.c index 040aeda..980229e 100644 --- a/src/node.c +++ b/src/node.c @@ -773,6 +773,7 @@ int S_is_leaf_node(cmark_node *current_node) switch (cmark_node_get_type(current_node)) { case CMARK_NODE_HTML: case CMARK_NODE_HRULE: + case CMARK_NODE_CODE_BLOCK: case CMARK_NODE_REFERENCE_DEF: case CMARK_NODE_TEXT: case CMARK_NODE_SOFTBREAK: @@ -815,8 +816,13 @@ int cmark_walk(cmark_node *root, cmark_node_handler handler, void *state) parent = current_node->parent; } if (next) { - begin = 1; - current_node = next; + // don't go past root: + if (current_node == root) { + return 1; + } else { + begin = 1; + current_node = next; + } } else { begin = 0; depth -= 1; -- cgit v1.2.3