mirror of
https://github.com/owntracks/recorder.git
synced 2026-08-27 16:57:21 +00:00
centralize node to object copy
This commit is contained in:
@@ -550,14 +550,7 @@ static int candidate_line(char *line, void *param)
|
||||
char *key = f->string_;
|
||||
|
||||
if ((node = json_find_member(o, key)) != NULL) {
|
||||
if (node->tag == JSON_STRING)
|
||||
json_append_member(newo, key, json_mkstring(node->string_));
|
||||
else if (node->tag == JSON_NUMBER)
|
||||
json_append_member(newo, key, json_mknumber(node->number_));
|
||||
else if (node->tag == JSON_BOOL)
|
||||
json_append_member(newo, key, json_mkbool(node->bool_));
|
||||
else if (node->tag == JSON_NULL)
|
||||
json_append_member(newo, key, json_mknull());
|
||||
json_copy_element_to_object(newo, key, node);
|
||||
}
|
||||
}
|
||||
json_delete(o);
|
||||
|
||||
@@ -48,6 +48,24 @@ char *slurp_file(char *filename, int fold_newlines)
|
||||
return (buf);
|
||||
}
|
||||
|
||||
/* Copy the node into obj */
|
||||
int json_copy_element_to_object(JsonNode *obj, char *key, JsonNode *node)
|
||||
{
|
||||
if (obj->tag != JSON_OBJECT)
|
||||
return (FALSE);
|
||||
|
||||
if (node->tag == JSON_STRING)
|
||||
json_append_member(obj, key, json_mkstring(node->string_));
|
||||
else if (node->tag == JSON_NUMBER)
|
||||
json_append_member(obj, key, json_mknumber(node->number_));
|
||||
else if (node->tag == JSON_BOOL)
|
||||
json_append_member(obj, key, json_mkbool(node->bool_));
|
||||
else if (node->tag == JSON_NULL)
|
||||
json_append_member(obj, key, json_mknull());
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
int json_copy_to_object(JsonNode * obj, JsonNode * object_or_array, int clobber)
|
||||
{
|
||||
JsonNode *node;
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
const char *isotime(time_t t);
|
||||
char *slurp_file(char *filename, int fold_newlines);
|
||||
int json_copy_to_object(JsonNode * obj, JsonNode * object_or_array, int clobber);
|
||||
int json_copy_to_object(JsonNode *obj, JsonNode * object_or_array, int clobber);
|
||||
int json_copy_element_to_object(JsonNode *obj, char *key, JsonNode *node);
|
||||
int json_copy_from_file(JsonNode * obj, char *filename);
|
||||
int splitter(char *s, char *sep, char **parts);
|
||||
JsonNode *json_splitter(char *s, char *sep);
|
||||
|
||||
Reference in New Issue
Block a user