diff options
author | Nicolas Williams <nico@cryptonector.com> | 2019-03-24 14:39:58 -0500 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2019-03-24 23:23:16 -0500 |
commit | 0dab2b18d73e561f5118011a65cc9877bf21c110 (patch) | |
tree | d4e212238e3a1915a433b497748ca35071940448 | |
parent | 3e0a11888644fd7660af2ac241cd5c97cf12feb4 (diff) |
Add -b / --binary option for Windows
-rw-r--r-- | docs/content/manual/manual.yml | 6 | ||||
-rw-r--r-- | src/main.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/docs/content/manual/manual.yml b/docs/content/manual/manual.yml index ef609a64..e721ddfa 100644 --- a/docs/content/manual/manual.yml +++ b/docs/content/manual/manual.yml @@ -164,6 +164,12 @@ sections: Colors can be configured with the `JQ_COLORS` environment variable (see below). + * `--binary` / `-b`: + + Windows users using WSL, MSYS2, or Cygwin, should use this option + when using a native jq.exe, otherwise jq will turn newlines (LFs) + into carriage-return-then-newline (CRLF). + * `--ascii-output` / `-a`: jq usually outputs non-ASCII Unicode codepoints as UTF-8, even @@ -394,6 +394,16 @@ int main(int argc, char* argv[]) { options |= RAW_OUTPUT | RAW_NO_LF; if (!short_opts) continue; } + if (isoption(argv[i], 'b', "binary", &short_opts)) { +#ifdef WIN32 + fflush(stdout); + fflush(stderr); + _setmode(fileno(stdin), _O_BINARY); + _setmode(fileno(stdout), _O_BINARY); + _setmode(fileno(stderr), _O_BINARY); + if (!short_opts) continue; +#endif + } if (isoption(argv[i], 0, "tab", &short_opts)) { dumpopts &= ~JV_PRINT_INDENT_FLAGS(7); dumpopts |= JV_PRINT_TAB | JV_PRINT_PRETTY; |