aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Pambor <tp@osasysteme.de>2019-08-05 11:51:03 +0200
committerTim Pambor <tp@osasysteme.de>2019-08-05 11:51:03 +0200
commit26a40d0e114c5f9025718b511d45f2da09259c1c (patch)
treed16a73e03dbe5301bc0c5c30f8a8d74e213fa68c
parent792cef084a751e32f541332feb4905f8e49e9943 (diff)
Fix piping on windows
On windows stdin and stdout have to be set to binary as otherwise windows treats it as text and converts occurences of CRLF to LF
-rw-r--r--iceprog/iceprog.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/iceprog/iceprog.c b/iceprog/iceprog.c
index bae9e71..aaba285 100644
--- a/iceprog/iceprog.c
+++ b/iceprog/iceprog.c
@@ -35,6 +35,11 @@
#include <sys/types.h>
#include <sys/stat.h>
+#ifdef _WIN32
+#include <io.h> /* _setmode() */
+#include <fcntl.h> /* _O_BINARY */
+#endif
+
#include "mpsse.h"
static bool verbose = false;
@@ -523,6 +528,11 @@ int main(int argc, char **argv)
const char *devstr = NULL;
int ifnum = 0;
+#ifdef _WIN32
+ _setmode(_fileno(stdin), _O_BINARY);
+ _setmode(_fileno(stdout), _O_BINARY);
+#endif
+
static struct option long_options[] = {
{"help", no_argument, NULL, -2},
{NULL, 0, NULL, 0}