summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2014-12-05 10:02:04 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2014-12-05 10:02:04 -0800
commit6baeaf39441895c0374974d96da84f2e3979cfb2 (patch)
treee0e0b17ff07344b17cd395b0cb9d89b4530f11c8 /src
parent1df1fd63e162314a62b512b29e27a30c67498028 (diff)
Added CMARK_NODE_TYPE_NONE.
This is the return value of cmark_get_node_type when the argument is a null pointer. Avoids segfault.
Diffstat (limited to 'src')
-rw-r--r--src/cmark.h2
-rw-r--r--src/node.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/cmark.h b/src/cmark.h
index cae4426..2559b5f 100644
--- a/src/cmark.h
+++ b/src/cmark.h
@@ -62,6 +62,8 @@ typedef enum {
CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,
CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,
+
+ CMARK_NODE_NONE = -1
} cmark_node_type;
diff --git a/src/node.c b/src/node.c
index fd92fdc..0991a9d 100644
--- a/src/node.c
+++ b/src/node.c
@@ -77,7 +77,11 @@ cmark_node_free(cmark_node *node) {
cmark_node_type
cmark_node_get_type(cmark_node *node)
{
- return node->type;
+ if (node == NULL) {
+ return CMARK_NODE_NONE;
+ } else {
+ return node->type;
+ }
}
static const char*
@@ -103,6 +107,7 @@ S_type_string(cmark_node *node)
case CMARK_NODE_STRONG: return "STRONG";
case CMARK_NODE_LINK: return "LINK";
case CMARK_NODE_IMAGE: return "IMAGE";
+ case CMARK_NODE_NONE: return "NONE";
}
return "<unknown>";