summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2014-11-19 16:38:22 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2014-11-19 16:38:22 +0100
commit3776d23d40b8f638a2a97d7e54f2660c7c435090 (patch)
tree43e29909fea98a44d7cdca741a68e5d7169ae9ec
parentb93d0b3a479bfc05dfbba0ad84172302df7f48cc (diff)
Accessors for header level
-rw-r--r--src/cmark.h6
-rw-r--r--src/node.c29
2 files changed, 35 insertions, 0 deletions
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) {