Merge libubox with the version 2016.02.26 from its git.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user