From 1c061aaf261c030ec9389bcf8f372e3b82d91101 Mon Sep 17 00:00:00 2001 From: Olof hagsand Date: Wed, 28 Sep 2016 21:12:38 +0200 Subject: [PATCH] xml->json translation revisited --- lib/clixon/clixon_json.h | 3 +- lib/src/clixon_json.c | 193 ++++++++++++++++++++++++--------------- 2 files changed, 122 insertions(+), 74 deletions(-) diff --git a/lib/clixon/clixon_json.h b/lib/clixon/clixon_json.h index c168d48b..93407e2d 100644 --- a/lib/clixon/clixon_json.h +++ b/lib/clixon/clixon_json.h @@ -28,7 +28,8 @@ */ int json_parse_str(char *str, cxobj **xt); int xml2json_cbuf(cbuf *cb, cxobj *x, int pretty); -int xml2json_cbuf_vec(cbuf *cb, cxobj **vec, size_t veclen, int pretty); +int xml2json_cbuf_vec(cbuf *cb, cxobj **vec, size_t veclen, int pretty); int xml2json(FILE *f, cxobj *x, int pretty); +int xml2json_vec(FILE *f, cxobj **vec, size_t veclen, int pretty); #endif /* _CLIXON_JSON_H */ diff --git a/lib/src/clixon_json.c b/lib/src/clixon_json.c index 414b7eb1..91baf0c8 100644 --- a/lib/src/clixon_json.c +++ b/lib/src/clixon_json.c @@ -139,35 +139,23 @@ enum list_element_type{ }; static enum list_element_type -list_eval(cxobj *x) +list_eval(cxobj *xprev, + cxobj *x, + cxobj *xnext) { enum list_element_type list = LIST_NO; - cxobj *xp; - cxobj *xprev=NULL; - cxobj *xnext=NULL; - int i; int eqprev=0; int eqnext=0; assert(xml_type(x)==CX_ELMNT); - if ((xp = xml_parent(x)) == NULL) - goto done; - for (i=0; i