Merge libubox with the version 2016.02.26 from its git.

This commit is contained in:
2016-02-26 23:13:29 +01:00
parent 6d5f11268b
commit 737ecc15d0
39 changed files with 2971 additions and 486 deletions

View File

@@ -164,7 +164,7 @@ static int jshn_parse(const char *str)
json_object *obj;
obj = json_tokener_parse(str);
if (is_error(obj) || json_object_get_type(obj) != json_type_object) {
if (!obj || json_object_get_type(obj) != json_type_object) {
fprintf(stderr, "Failed to parse message data\n");
return 1;
}
@@ -179,8 +179,8 @@ static char *get_keys(const char *prefix)
{
char *keys;
keys = alloca(var_prefix_len + strlen(prefix) + sizeof("KEYS_") + 1);
sprintf(keys, "%sKEYS_%s", var_prefix, prefix);
keys = alloca(var_prefix_len + strlen(prefix) + sizeof("K_") + 1);
sprintf(keys, "%sK_%s", var_prefix, prefix);
return getenv(keys);
}
@@ -188,15 +188,15 @@ static void get_var(const char *prefix, const char **name, char **var, char **ty
{
char *tmpname, *varname;
tmpname = alloca(var_prefix_len + strlen(prefix) + 1 + strlen(*name) + 1 + sizeof("TYPE_"));
tmpname = alloca(var_prefix_len + strlen(prefix) + 1 + strlen(*name) + 1 + sizeof("T_"));
sprintf(tmpname, "%s%s_%s", var_prefix, prefix, *name);
*var = getenv(tmpname);
sprintf(tmpname, "%sTYPE_%s_%s", var_prefix, prefix, *name);
sprintf(tmpname, "%sT_%s_%s", var_prefix, prefix, *name);
*type = getenv(tmpname);
sprintf(tmpname, "%sNAME_%s_%s", var_prefix, prefix, *name);
sprintf(tmpname, "%sN_%s_%s", var_prefix, prefix, *name);
varname = getenv(tmpname);
if (varname)
*name = varname;
@@ -258,18 +258,31 @@ static int jshn_format(bool no_newline, bool indent)
{
json_object *obj;
const char *output;
char *blobmsg_output = NULL;
int ret = -1;
if (!(obj = json_object_new_object()))
return -1;
jshn_add_objects(obj, "J_V", false);
if (!(output = json_object_to_json_string(obj)))
goto out;
obj = json_object_new_object();
jshn_add_objects(obj, "JSON_VAR", false);
output = json_object_to_json_string(obj);
if (indent) {
blob_buf_init(&b, 0);
blobmsg_add_json_from_string(&b, output);
output = blobmsg_format_json_indent(b.head, 1, 0);
if (!blobmsg_add_json_from_string(&b, output))
goto out;
if (!(blobmsg_output = blobmsg_format_json_indent(b.head, 1, 0)))
goto out;
output = blobmsg_output;
}
fprintf(stdout, "%s%s", output, no_newline ? "" : "\n");
free(blobmsg_output);
ret = 0;
out:
json_object_put(obj);
return 0;
return ret;
}
static int usage(const char *progname)