From d3c99152fc67b128a1fa9b510b87a6402ad9958d Mon Sep 17 00:00:00 2001 From: Rexy712 Date: Wed, 26 Jun 2019 18:07:19 -0700 Subject: [PATCH] Added string copy constructor --- include/rjp.h | 1 + src/rjp.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/rjp.h b/include/rjp.h index 58a115a..0165ccd 100644 --- a/include/rjp.h +++ b/include/rjp.h @@ -120,6 +120,7 @@ RJP_value rjp_integer(long i); RJP_value rjp_boolean(char b); RJP_value rjp_dfloat(double d); RJP_value rjp_string(char* c, size_t len); +RJP_value rjp_string_copy(const char* c); RJP_value rjp_null(void); RJP_value rjp_object(void); RJP_value rjp_array(void); diff --git a/src/rjp.c b/src/rjp.c index fc5be3f..e117180 100644 --- a/src/rjp.c +++ b/src/rjp.c @@ -97,6 +97,12 @@ RJP_value rjp_dfloat(double d){ RJP_value rjp_string(char* c, size_t len){ return (RJP_value){.string = {.value = c, .length = len}, .type = json_string}; } +RJP_value rjp_string_copy(const char* c){ + size_t esclen = rjp_escape_strlen(c); + char* tmp = rjp_alloc(esclen+1); + rjp_escape_strcpy(tmp, c); + return (RJP_value){.string = {.value = tmp, .length = esclen}, .type = json_string}; +} RJP_value rjp_null(void){ return (RJP_value){.integer = 0, .type = json_null}; }