summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/plistutil.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/plistutil.c b/tools/plistutil.c
index e2ea286..8a341d0 100644
--- a/tools/plistutil.c
+++ b/tools/plistutil.c
@@ -33,6 +33,10 @@
#include <sys/stat.h>
#include <getopt.h>
#include <errno.h>
+#ifdef _WIN32
+#include <fcntl.h>
+#include <io.h>
+#endif
#ifndef _MSC_VER
#include <unistd.h>
#endif
@@ -266,6 +270,9 @@ int main(int argc, char *argv[])
if (!options->in_file || !strcmp(options->in_file, "-"))
{
+#ifdef _WIN32
+ _setmode(_fileno(stdin), _O_BINARY);
+#endif
read_size = 0;
plist_entire = malloc(sizeof(char) * read_capacity);
if(plist_entire == NULL)
@@ -475,8 +482,12 @@ int main(int argc, char *argv[])
fclose(oplist);
}
// if no output file specified, write to stdout
- else
+ else {
+#ifdef _WIN32
+ _setmode(_fileno(stdout), _O_BINARY);
+#endif
fwrite(plist_out, size, sizeof(char), stdout);
+ }
free(plist_out);
}