From 759e03748a368be8b209dfd113441c05e1a5dcc0 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 20 Nov 2014 13:02:53 +0100 Subject: More tree hierarchy checks and tests --- src/node.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/node.c b/src/node.c index 624baad..4317dd4 100644 --- a/src/node.c +++ b/src/node.c @@ -348,6 +348,17 @@ S_is_inline(cmark_node *node) { static bool S_can_contain(cmark_node *node, cmark_node *child) { + cmark_node *cur; + + // Verify that child is not an ancestor of node or equal to node. + cur = node; + do { + if (cur == child) { + return false; + } + cur = cur->parent; + } while (cur != NULL); + if (child->type == CMARK_NODE_DOCUMENT) { return false; } -- cgit v1.2.3