Repository: lucy-clownfish Updated Branches: refs/heads/markdown_v2 8776f81f9 -> 3d7c5ed36
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/3d7c5ed3/compiler/modules/CommonMark/src/inlines.c ---------------------------------------------------------------------- diff --git a/compiler/modules/CommonMark/src/inlines.c b/compiler/modules/CommonMark/src/inlines.c index 643837b..08a934b 100644 --- a/compiler/modules/CommonMark/src/inlines.c +++ b/compiler/modules/CommonMark/src/inlines.c @@ -8,7 +8,7 @@ #include "parser.h" #include "references.h" #include "cmark.h" -#include "html/houdini.h" +#include "houdini.h" #include "utf8.h" #include "scanners.h" #include "inlines.h" http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/3d7c5ed3/compiler/modules/CommonMark/src/libcmark.pc.in ---------------------------------------------------------------------- diff --git a/compiler/modules/CommonMark/src/libcmark.pc.in b/compiler/modules/CommonMark/src/libcmark.pc.in new file mode 100644 index 0000000..9c3a9a9 --- /dev/null +++ b/compiler/modules/CommonMark/src/libcmark.pc.in @@ -0,0 +1,10 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=@CMAKE_INSTALL_PREFIX@/lib +includedir=@CMAKE_INSTALL_PREFIX@/include + +Name: libcmark +Description: CommonMark parsing, rendering, and manipulation +Version: @PROJECT_VERSION@ +Libs: -L${libdir} -lcmark +Cflags: -I${includedir} http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/3d7c5ed3/compiler/modules/CommonMark/src/node.c ---------------------------------------------------------------------- diff --git a/compiler/modules/CommonMark/src/node.c b/compiler/modules/CommonMark/src/node.c index fd92fdc..243c3e6 100644 --- a/compiler/modules/CommonMark/src/node.c +++ b/compiler/modules/CommonMark/src/node.c @@ -77,13 +77,22 @@ 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* S_type_string(cmark_node *node) { + if (node == NULL) { + return "NONE"; + } + switch (node->type) { + case CMARK_NODE_NONE: return "NONE"; case CMARK_NODE_DOCUMENT: return "DOCUMENT"; case CMARK_NODE_BLOCK_QUOTE: return "BLOCK_QUOTE"; case CMARK_NODE_LIST: return "LIST"; @@ -111,31 +120,51 @@ S_type_string(cmark_node *node) cmark_node* cmark_node_next(cmark_node *node) { - return node->next; + if (node == NULL) { + return NULL; + } else { + return node->next; + } } cmark_node* cmark_node_previous(cmark_node *node) { - return node->prev; + if (node == NULL) { + return NULL; + } else { + return node->prev; + } } cmark_node* cmark_node_parent(cmark_node *node) { - return node->parent; + if (node == NULL) { + return NULL; + } else { + return node->parent; + } } cmark_node* cmark_node_first_child(cmark_node *node) { - return node->first_child; + if (node == NULL) { + return NULL; + } else { + return node->first_child; + } } cmark_node* cmark_node_last_child(cmark_node *node) { - return node->last_child; + if (node == NULL) { + return NULL; + } else { + return node->last_child; + } } static char* @@ -148,6 +177,10 @@ S_strdup(const char *str) { const char* cmark_node_get_string_content(cmark_node *node) { + if (node == NULL) { + return NULL; + } + switch (node->type) { case NODE_CODE_BLOCK: case NODE_HTML: @@ -167,6 +200,10 @@ cmark_node_get_string_content(cmark_node *node) { int cmark_node_set_string_content(cmark_node *node, const char *content) { + if (node == NULL) { + return 0; + } + switch (node->type) { case NODE_CODE_BLOCK: case NODE_HTML: @@ -188,6 +225,10 @@ cmark_node_set_string_content(cmark_node *node, const char *content) { int cmark_node_get_header_level(cmark_node *node) { + if (node == NULL) { + return 0; + } + switch (node->type) { case CMARK_NODE_HEADER: return node->as.header.level; @@ -201,7 +242,7 @@ cmark_node_get_header_level(cmark_node *node) { int cmark_node_set_header_level(cmark_node *node, int level) { - if (level < 1 || level > 6) { + if (node == NULL || level < 1 || level > 6) { return 0; } @@ -219,6 +260,10 @@ cmark_node_set_header_level(cmark_node *node, int level) { cmark_list_type cmark_node_get_list_type(cmark_node *node) { + if (node == NULL) { + return CMARK_NO_LIST; + } + if (node->type == CMARK_NODE_LIST) { return node->as.list.list_type; } @@ -233,6 +278,10 @@ cmark_node_set_list_type(cmark_node *node, cmark_list_type type) { return 0; } + if (node == NULL) { + return 0; + } + if (node->type == CMARK_NODE_LIST) { node->as.list.list_type = type; return 1; @@ -244,6 +293,10 @@ cmark_node_set_list_type(cmark_node *node, cmark_list_type type) { int cmark_node_get_list_start(cmark_node *node) { + if (node == NULL) { + return 0; + } + if (node->type == CMARK_NODE_LIST) { return node->as.list.start; } @@ -254,7 +307,7 @@ cmark_node_get_list_start(cmark_node *node) { int cmark_node_set_list_start(cmark_node *node, int start) { - if (start < 0) { + if (node == NULL || start < 0) { return 0; } @@ -269,6 +322,10 @@ cmark_node_set_list_start(cmark_node *node, int start) { int cmark_node_get_list_tight(cmark_node *node) { + if (node == NULL) { + return 0; + } + if (node->type == CMARK_NODE_LIST) { return node->as.list.tight; } @@ -279,6 +336,10 @@ cmark_node_get_list_tight(cmark_node *node) { int cmark_node_set_list_tight(cmark_node *node, int tight) { + if (node == NULL) { + return 0; + } + if (node->type == CMARK_NODE_LIST) { node->as.list.tight = tight; return 1; @@ -290,6 +351,10 @@ cmark_node_set_list_tight(cmark_node *node, int tight) { const char* cmark_node_get_fence_info(cmark_node *node) { + if (node == NULL) { + return NULL; + } + if (node->type == NODE_CODE_BLOCK) { return cmark_strbuf_cstr(&node->as.code.info); } @@ -300,6 +365,10 @@ cmark_node_get_fence_info(cmark_node *node) { int cmark_node_set_fence_info(cmark_node *node, const char *info) { + if (node == NULL) { + return 0; + } + if (node->type == NODE_CODE_BLOCK) { cmark_strbuf_sets(&node->as.code.info, info); return 1; @@ -311,6 +380,10 @@ cmark_node_set_fence_info(cmark_node *node, const char *info) { const char* cmark_node_get_url(cmark_node *node) { + if (node == NULL) { + return NULL; + } + switch (node->type) { case NODE_LINK: case NODE_IMAGE: @@ -324,6 +397,10 @@ cmark_node_get_url(cmark_node *node) { int cmark_node_set_url(cmark_node *node, const char *url) { + if (node == NULL) { + return 0; + } + switch (node->type) { case NODE_LINK: case NODE_IMAGE: @@ -339,6 +416,10 @@ cmark_node_set_url(cmark_node *node, const char *url) { const char* cmark_node_get_title(cmark_node *node) { + if (node == NULL) { + return NULL; + } + switch (node->type) { case NODE_LINK: case NODE_IMAGE: @@ -352,6 +433,10 @@ cmark_node_get_title(cmark_node *node) { int cmark_node_set_title(cmark_node *node, const char *title) { + if (node == NULL) { + return 0; + } + switch (node->type) { case NODE_LINK: case NODE_IMAGE: @@ -367,27 +452,42 @@ cmark_node_set_title(cmark_node *node, const char *title) { int cmark_node_get_start_line(cmark_node *node) { + if (node == NULL) { + return 0; + } return node->start_line; } int cmark_node_get_start_column(cmark_node *node) { + if (node == NULL) { + return 0; + } return node->start_column; } int cmark_node_get_end_line(cmark_node *node) { + if (node == NULL) { + return 0; + } return node->end_line; } static inline bool S_is_block(cmark_node *node) { + if (node == NULL) { + return false; + } return node->type >= CMARK_NODE_FIRST_BLOCK && node->type <= CMARK_NODE_LAST_BLOCK; } static inline bool S_is_inline(cmark_node *node) { + if (node == NULL) { + return false; + } return node->type >= CMARK_NODE_FIRST_INLINE && node->type <= CMARK_NODE_LAST_INLINE; } @@ -397,6 +497,10 @@ S_can_contain(cmark_node *node, cmark_node *child) { cmark_node *cur; + if (node == NULL || child == NULL) { + return false; + } + // Verify that child is not an ancestor of node or equal to node. cur = node; do { @@ -439,6 +543,10 @@ S_can_contain(cmark_node *node, cmark_node *child) static void S_node_unlink(cmark_node *node) { + if (node == NULL) { + return; + } + if (node->prev) { node->prev->next = node->next; } @@ -471,6 +579,10 @@ cmark_node_unlink(cmark_node *node) { int cmark_node_insert_before(cmark_node *node, cmark_node *sibling) { + if (node == NULL || sibling == NULL) { + return 0; + } + if (!node->parent || !S_can_contain(node->parent, sibling)) { return 0; } @@ -502,6 +614,10 @@ cmark_node_insert_before(cmark_node *node, cmark_node *sibling) int cmark_node_insert_after(cmark_node *node, cmark_node *sibling) { + if (node == NULL || sibling == NULL) { + return 0; + } + if (!node->parent || !S_can_contain(node->parent, sibling)) { return 0; } @@ -651,5 +767,3 @@ cmark_node_check(cmark_node *node, FILE *out) return errors; } - - http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/3d7c5ed3/compiler/modules/CommonMark/src/scanners.c ---------------------------------------------------------------------- diff --git a/compiler/modules/CommonMark/src/scanners.c b/compiler/modules/CommonMark/src/scanners.c index 5db2736..6728c07 100644 --- a/compiler/modules/CommonMark/src/scanners.c +++ b/compiler/modules/CommonMark/src/scanners.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue Nov 18 21:33:36 2014 */ +/* Generated by re2c 0.13.6 */ #include <stdlib.h> #include "chunk.h" #include "scanners.h" @@ -10506,7 +10506,7 @@ yy1114: yy1115: p = marker; if (yyaccept <= 1) { - if (yyaccept <= 0) { + if (yyaccept == 0) { goto yy1103; } else { goto yy1110; @@ -10890,13 +10890,13 @@ yy1147: yy1148: p = marker; if (yyaccept <= 1) { - if (yyaccept <= 0) { + if (yyaccept == 0) { goto yy1141; } else { goto yy1152; } } else { - if (yyaccept <= 2) { + if (yyaccept == 2) { goto yy1159; } else { goto yy1166; @@ -11670,7 +11670,7 @@ yy1275: } yy1276: p = marker; - if (yyaccept <= 0) { + if (yyaccept == 0) { goto yy1271; } else { goto yy1283; http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/3d7c5ed3/compiler/modules/CommonMark/src/scanners.h ---------------------------------------------------------------------- diff --git a/compiler/modules/CommonMark/src/scanners.h b/compiler/modules/CommonMark/src/scanners.h index 3269112..aa5c00d 100644 --- a/compiler/modules/CommonMark/src/scanners.h +++ b/compiler/modules/CommonMark/src/scanners.h @@ -1,4 +1,5 @@ #include "cmark.h" +#include "chunk.h" #ifdef __cplusplus extern "C" {
