diff options
author | Tim Pambor <tp@osasysteme.de> | 2019-08-05 11:51:03 +0200 |
---|---|---|
committer | Tim Pambor <tp@osasysteme.de> | 2019-08-05 11:51:03 +0200 |
commit | 26a40d0e114c5f9025718b511d45f2da09259c1c (patch) | |
tree | d16a73e03dbe5301bc0c5c30f8a8d74e213fa68c | |
parent | 792cef084a751e32f541332feb4905f8e49e9943 (diff) | |
download | icestorm-26a40d0e114c5f9025718b511d45f2da09259c1c.tar.gz icestorm-26a40d0e114c5f9025718b511d45f2da09259c1c.tar.bz2 icestorm-26a40d0e114c5f9025718b511d45f2da09259c1c.zip |
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.c | 10 |
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} |