Add option to link zlib statically
[project/make_ext4fs.git] / libsparse / output_file.c
index cd30800..a581c45 100644 (file)
@@ -24,6 +24,7 @@
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
 #include "sparse_crc32.h"
 #include "sparse_format.h"
 
-#ifndef USE_MINGW
-#include <sys/mman.h>
-#define O_BINARY 0
-#else
-#define ftruncate64 ftruncate
-#endif
-
 #if defined(__APPLE__) && defined(__MACH__)
 #define lseek64 lseek
 #define ftruncate64 ftruncate
@@ -705,39 +699,16 @@ int write_fd_chunk(struct output_file *out, unsigned int len,
        aligned_diff = offset - aligned_offset;
        buffer_size = len + aligned_diff;
 
-#ifndef USE_MINGW
        char *data = mmap64(NULL, buffer_size, PROT_READ, MAP_SHARED, fd,
                        aligned_offset);
        if (data == MAP_FAILED) {
                return -errno;
        }
        ptr = data + aligned_diff;
-#else
-       off64_t pos;
-       char *data = malloc(len);
-       if (!data) {
-               return -errno;
-       }
-       pos = lseek64(fd, offset, SEEK_SET);
-       if (pos < 0) {
-                free(data);
-               return -errno;
-       }
-       ret = read_all(fd, data, len);
-       if (ret < 0) {
-                free(data);
-               return ret;
-       }
-       ptr = data;
-#endif
 
        ret = out->sparse_ops->write_data_chunk(out, len, ptr);
 
-#ifndef USE_MINGW
        munmap(data, buffer_size);
-#else
-       free(data);
-#endif
 
        return ret;
 }
@@ -748,7 +719,7 @@ int write_file_chunk(struct output_file *out, unsigned int len,
 {
        int ret;
 
-       int file_fd = open(file, O_RDONLY | O_BINARY);
+       int file_fd = open(file, O_RDONLY);
        if (file_fd < 0) {
                return -errno;
        }