From 3776d23d40b8f638a2a97d7e54f2660c7c435090 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Wed, 19 Nov 2014 16:38:22 +0100 Subject: Accessors for header level --- src/cmark.h | 6 ++++++ src/node.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) (limited to 'src') diff --git a/src/cmark.h b/src/cmark.h index e677ed0..a23b587 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -95,6 +95,12 @@ cmark_node_get_string_content(cmark_node *node); CMARK_EXPORT int cmark_node_set_string_content(cmark_node *node, const char *content); +CMARK_EXPORT int +cmark_node_get_header_level(cmark_node *node); + +CMARK_EXPORT int +cmark_node_set_header_level(cmark_node *node, int level); + CMARK_EXPORT const char* cmark_node_get_url(cmark_node *node); diff --git a/src/node.c b/src/node.c index 1b767ae..56f3937 100644 --- a/src/node.c +++ b/src/node.c @@ -134,6 +134,35 @@ cmark_node_set_string_content(cmark_node *node, const char *content) { return 0; } +int +cmark_node_get_header_level(cmark_node *node) { + switch (node->type) { + case CMARK_NODE_ATX_HEADER: + case CMARK_NODE_SETEXT_HEADER: + return node->as.header.level; + + default: + break; + } + + return 0; +} + +int +cmark_node_set_header_level(cmark_node *node, int level) { + switch (node->type) { + case CMARK_NODE_ATX_HEADER: + case CMARK_NODE_SETEXT_HEADER: + node->as.header.level = level; + return 1; + + default: + break; + } + + return 0; +} + const char* cmark_node_get_url(cmark_node *node) { switch (node->type) { -- cgit v1.2.3