diff options
-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; |