fix json list parsing
authorFelix Fietkau <nbd@openwrt.org>
Sun, 30 Jan 2011 00:13:32 +0000 (01:13 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 30 Jan 2011 00:13:32 +0000 (01:13 +0100)
blobmsg.c
blobmsg.h
examples/blobmsg-example.c

index bdc5ef74b54b3c334e6bf183aa3e9df30fa919be..69a160b54051e1cdf293b63d3acc08dcfc3bcf4b 100644 (file)
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -155,7 +155,7 @@ static void blobmsg_format_json_list(struct strbuf *s, struct blob_attr *attr, i
        blobmsg_puts(s, (array ? " ]" : " }"), 2);
 }
 
-char *blobmsg_format_json(struct blob_attr *attr)
+char *blobmsg_format_json(struct blob_attr *attr, bool named)
 {
        struct strbuf s;
 
@@ -163,7 +163,7 @@ char *blobmsg_format_json(struct blob_attr *attr)
        s.buf = malloc(s.len);
        s.pos = 0;
 
-       blobmsg_format_element(&s, attr, true, true);
+       blobmsg_format_json_list(&s, blob_data(attr), blob_len(attr), !named);
 
        if (!s.len)
                return NULL;
index aa1f314a9db884bee1b0d50c94bba95664e4af0d..554bed8c1add427af1c94b44e698a17b29e97b8e 100644 (file)
--- a/blobmsg.h
+++ b/blobmsg.h
@@ -139,7 +139,7 @@ static inline int blobmsg_buf_init(struct blob_buf *buf)
        return blob_buf_init(buf, BLOBMSG_TYPE_TABLE);
 }
 
-char *blobmsg_format_json(struct blob_attr *attr);
+char *blobmsg_format_json(struct blob_attr *attr, bool named);
 
 #define blobmsg_for_each_attr(pos, attr, rem) \
        for (rem = blobmsg_data_len(attr), pos = blobmsg_data(attr); \
index 3630208be16b3937f2fb7b07d835d46dad3474b4..86762d887d95766341b00672c5e3b4e215638ba0 100644 (file)
@@ -128,7 +128,7 @@ int main(int argc, char **argv)
        blobmsg_buf_init(&buf);
        fill_message(&buf);
        dump_message(&buf);
-       fprintf(stderr, "json: %s\n", blobmsg_format_json(buf.head));
+       fprintf(stderr, "json: %s\n", blobmsg_format_json(buf.head, false), true);
 
        if (buf.buf)
                free(buf.buf);