diff --git a/docs/content/3.manual/manual.yml b/docs/content/3.manual/manual.yml index d55df30f..7fada7ed 100644 --- a/docs/content/3.manual/manual.yml +++ b/docs/content/3.manual/manual.yml @@ -215,9 +215,7 @@ sections: value to the jq program as a predefined variable. If you run jq with `--argfile foo bar`, then `$foo` is available in the program and has the value resulting from parsing the content of - the file named `bar`. The file is slurped. That means the - value loaded will be an array of the top-level JSON values found - in the file. + the file named `bar`. - title: Basic filters entries: diff --git a/main.c b/main.c index 627719b1..9623d2c9 100644 --- a/main.c +++ b/main.c @@ -320,6 +320,8 @@ int main(int argc, char* argv[]) { ret = 2; goto out; } + if (jv_get_kind(data) == JV_KIND_ARRAY && jv_array_length(jv_copy(data)) == 1) + data = jv_array_get(data, 0); arg = jv_object_set(arg, jv_string("value"), data); program_arguments = jv_array_append(program_arguments, arg); i += 2; // skip the next two arguments