]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Set binary mode for stdin and stdout in switchlevels.
authorNathan Moinvaziri <nathan@solidstatenetworks.com>
Fri, 15 May 2020 17:22:49 +0000 (13:22 -0400)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Mon, 25 May 2020 14:13:36 +0000 (16:13 +0200)
test/switchlevels.c

index 5c4770f8cdb14c98d044f4e14b70b0bff10f3593..f991a838cb752048ca9f8196512496f46b191d3c 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
+#if defined(WIN32) || defined(__CYGWIN__)
+#  include <fcntl.h>
+#  include <io.h>
+#  define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
+#else
+#  define SET_BINARY_MODE(file)
+#endif
+
 static int read_all(unsigned char *buf, size_t size) {
     for (size_t total_read = 0; total_read < size;) {
         size_t n_read = fread(buf + total_read, 1, size - total_read, stdin);
@@ -87,6 +95,8 @@ done:
 int main(int argc, char **argv) {
     int ret = EXIT_FAILURE;
     PREFIX3(stream) strm;
+    SET_BINARY_MODE(stdin);
+    SET_BINARY_MODE(stdout);
     memset(&strm, 0, sizeof(strm));
     int err = PREFIX(deflateInit2)(&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED, MAX_WBITS + 16, 8, Z_DEFAULT_STRATEGY);
     if (err != Z_OK) {