diff --git a/src/dfmt/main.d b/src/dfmt/main.d index c6f7275..58f3453 100644 --- a/src/dfmt/main.d +++ b/src/dfmt/main.d @@ -110,6 +110,22 @@ else return 1; File output = stdout; + version(Windows) + { + // On Windows, set stdout to binary mode (needed for correct EOL writing) + // See Phobos' stdio.File.rawWrite + { + import std.stdio; + immutable fd = fileno(output.getFP()); + setmode(fd, _O_BINARY); + version(CRuntime_DigitalMars) + { + import core.atomic : atomicOp; + atomicOp!"&="(__fhnd_info[fd], ~FHND_TEXT); + } + } + } + ubyte[] buffer; if (readFromStdin)