From 3739c54c9a3ce1f79452548a49f82878868fa6d0 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 11 Nov 2014 12:51:54 -0800 Subject: Improved cmark_markdown_to_html. Added length parameter so we can avoid strlen. Properly free buffer. --- src/cmark.c | 10 +++++++--- src/cmark.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/cmark.c b/src/cmark.c index 064c080..ef98d79 100644 --- a/src/cmark.c +++ b/src/cmark.c @@ -5,15 +5,19 @@ #include "cmark.h" #include "buffer.h" -extern unsigned char *cmark_markdown_to_html(unsigned char *text) +extern unsigned char *cmark_markdown_to_html(unsigned char *text, int len) { node_block *blocks; strbuf htmlbuf = GH_BUF_INIT; + unsigned char *result; - blocks = cmark_parse_document(text, sizeof(text)); + blocks = cmark_parse_document(text, len); cmark_render_html(&htmlbuf, blocks); cmark_free_nodes(blocks); - return strbuf_detach(&htmlbuf); + result = strbuf_detach(&htmlbuf); + strbuf_free(&htmlbuf); + + return result; } diff --git a/src/cmark.h b/src/cmark.h index 6347901..5f0d5f7 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -118,7 +118,7 @@ void cmark_free_nodes(node_block *e); void cmark_debug_print(node_block *root); void cmark_render_html(strbuf *html, node_block *root); -unsigned char *cmark_markdown_to_html(unsigned char *text); +unsigned char *cmark_markdown_to_html(unsigned char *text, int len); #ifdef __cplusplus } -- cgit v1.2.3