The option naming --nul-output was confusing, especially when we have a similar option for input stream in the future (--nul-input vs --null-input). Based on the observation of other command line tools, we rename the option to --raw-output0. We also drop the short option -0 to avoid confusion on introducing the NUL-delimited input option. Unlike the other command line tools outputting file names with NUL delimiter, jq deals with JSON, and its strings may contain NUL character. To protect users from the risk of injection attacks, we abort the program and print an error message before outputting strings including NUL character. Closes #2683.
Documentation
The jq website, manpages and some of the tests are generated from this
directory. The manual is a YAML file in content/manual.
To build the documentation (including building the jq manpage), you'll
need python3 and pipenv. You can install pipenv like so:
pip install pipenv
Though, you may need to say pip3 instead, depending on your system. Once
you have pipenv installed, you can install the dependencies by running
pipenv sync from the docs directory.
Also, you may need to run virtualenv -p /usr/bin/python3 venv/ and
then source venv/bin/activate, and only then pipenv sync.
Once this is done, rerun ./configure in the jq root directory and then
the Makefile will be able to generate the jq manpage. You can also just
run pipenv run build_manpage.py in the docs directory to build the
jq.1 page manually, and pipenv run build_mantests.py to build the
contents of tests/man.test and tests/manonig.test.
To build the website, run pipenv run ./build_website.py from inside
the docs directory.