From 6c734cb6098221c6994a854b46c978c8ba526bac Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Thu, 28 Nov 2013 14:53:50 -0600 Subject: [PATCH] Add explode/implode jq functions to match jv API --- builtin.c | 2 ++ jv.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/builtin.c b/builtin.c index 721cd3fc..371df372 100644 --- a/builtin.c +++ b/builtin.c @@ -493,6 +493,8 @@ static const struct cfunction function_list[] = { {(cfunction_ptr)f_tonumber, "tonumber", 1}, {(cfunction_ptr)f_tostring, "tostring", 1}, {(cfunction_ptr)f_keys, "keys", 1}, + {(cfunction_ptr)jv_string_explode, "explode", 1}, + {(cfunction_ptr)jv_string_implode, "implode", 1}, {(cfunction_ptr)jv_setpath, "setpath", 3}, // FIXME typechecking {(cfunction_ptr)jv_getpath, "getpath", 2}, {(cfunction_ptr)jv_delpaths, "delpaths", 2}, diff --git a/jv.c b/jv.c index a1e98026..d9a908ce 100644 --- a/jv.c +++ b/jv.c @@ -618,7 +618,7 @@ jv jv_string_implode(jv j) { assert(len >= 0); for (i = 0; i < len; i++) { - jv n = jv_array_get(j, i); + jv n = jv_array_get(jv_copy(j), i); assert(jv_get_kind(n) == JV_KIND_NUMBER); s = jv_string_append_codepoint(s, jv_number_value(n)); }