From df7ef9ed7b5f418897df557c9de88eaba2174703 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Sat, 18 Jan 2020 22:25:41 +0100 Subject: Helper function to set C strings in nodes --- src/node.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/node.c b/src/node.c index c6c2902..147debf 100644 --- a/src/node.c +++ b/src/node.c @@ -249,6 +249,26 @@ cmark_node *cmark_node_last_child(cmark_node *node) { } } +static bufsize_t cmark_set_cstr(cmark_mem *mem, unsigned char **dst, + const char *src) { + unsigned char *old = *dst; + bufsize_t len; + + if (src && src[0]) { + len = (bufsize_t)strlen(src); + *dst = (unsigned char *)mem->realloc(NULL, len + 1); + memcpy(*dst, src, len + 1); + } else { + len = 0; + *dst = NULL; + } + if (old) { + mem->free(old); + } + + return len; +} + void *cmark_node_get_user_data(cmark_node *node) { if (node == NULL) { return NULL; -- cgit v1.2.3