Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-04-26 12:58:54 +0400
committerFelix Fietkau <nbd@openwrt.org>2014-04-26 12:59:00 +0400
commit131b3352d9005895fdd6b1c9fb9cb1263469773b (patch)
treea96c81b3cb930c96ebbc814e606d4ee020f0294c /blobmsg_json.c
parentef918710c02166c289442bd0a8b548da802dd36b (diff)
blobmsg_json: let blobmsg_format_json_with_cb with list == true also format arrays
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'blobmsg_json.c')
-rw-r--r--blobmsg_json.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/blobmsg_json.c b/blobmsg_json.c
index 3b32b93..05779eb 100644
--- a/blobmsg_json.c
+++ b/blobmsg_json.c
@@ -286,6 +286,7 @@ static void blobmsg_format_json_list(struct strbuf *s, struct blob_attr *attr, i
char *blobmsg_format_json_with_cb(struct blob_attr *attr, bool list, blobmsg_json_format_t cb, void *priv, int indent)
{
struct strbuf s;
+ bool array;
s.len = blob_len(attr);
s.buf = malloc(s.len);
@@ -299,8 +300,11 @@ char *blobmsg_format_json_with_cb(struct blob_attr *attr, bool list, blobmsg_jso
s.indent_level = indent;
}
+ array = blob_is_extended(attr) &&
+ blobmsg_type(attr) == BLOBMSG_TYPE_ARRAY;
+
if (list)
- blobmsg_format_json_list(&s, blobmsg_data(attr), blobmsg_data_len(attr), false);
+ blobmsg_format_json_list(&s, blobmsg_data(attr), blobmsg_data_len(attr), array);
else
blobmsg_format_element(&s, attr, false, false);