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 bdc5ef7..69a160b 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 aa1f314..554bed8 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 3630208..86762d8 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);