diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-12-05 10:02:04 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-12-05 10:02:04 -0800 |
commit | 6baeaf39441895c0374974d96da84f2e3979cfb2 (patch) | |
tree | e0e0b17ff07344b17cd395b0cb9d89b4530f11c8 /src | |
parent | 1df1fd63e162314a62b512b29e27a30c67498028 (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.h | 2 | ||||
-rw-r--r-- | src/node.c | 7 |
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; @@ -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>"; |