diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f961279 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +tests/issue0228.d text eol=lf +tests/allman/issue0228.d.ref text eol=crlf +tests/knr/issue0228.d.ref text eol=crlf +tests/otbs/issue0228.d.ref text eol=crlf diff --git a/src/dfmt/formatter.d b/src/dfmt/formatter.d index acd4724..94333a8 100644 --- a/src/dfmt/formatter.d +++ b/src/dfmt/formatter.d @@ -1825,6 +1825,8 @@ private: { import std.range:retro; import std.algorithm.searching:countUntil; + import std.algorithm.iteration:joiner; + import std.string:lineSplitter; if (current.text is null) { @@ -1834,12 +1836,7 @@ private: } else { - // You know what's awesome? Windows can't handle its own line - // endings correctly. - version (Windows) - output.put(current.text.replace("\r", "")); - else - output.put(current.text); + output.put(current.text.lineSplitter.joiner(eolString)); switch (current.type) { case tok!"stringLiteral": diff --git a/tests/allman/issue0228.d.ref b/tests/allman/issue0228.d.ref new file mode 100644 index 0000000..936d74d --- /dev/null +++ b/tests/allman/issue0228.d.ref @@ -0,0 +1,8 @@ +/* This test relies on ../.gitattributes to contain these lines: + +tests/issue0228.d text eol=lf +tests/allman/issue0228.d.ref text eol=crlf +tests/knr/issue0228.d.ref text eol=crlf +tests/otbs/issue0228.d.ref text eol=crlf + +*/ diff --git a/tests/issue0228.args b/tests/issue0228.args new file mode 100644 index 0000000..9e53c91 --- /dev/null +++ b/tests/issue0228.args @@ -0,0 +1 @@ +--end_of_line=crlf diff --git a/tests/issue0228.d b/tests/issue0228.d new file mode 100644 index 0000000..936d74d --- /dev/null +++ b/tests/issue0228.d @@ -0,0 +1,8 @@ +/* This test relies on ../.gitattributes to contain these lines: + +tests/issue0228.d text eol=lf +tests/allman/issue0228.d.ref text eol=crlf +tests/knr/issue0228.d.ref text eol=crlf +tests/otbs/issue0228.d.ref text eol=crlf + +*/ diff --git a/tests/knr/issue0228.d.ref b/tests/knr/issue0228.d.ref new file mode 100644 index 0000000..936d74d --- /dev/null +++ b/tests/knr/issue0228.d.ref @@ -0,0 +1,8 @@ +/* This test relies on ../.gitattributes to contain these lines: + +tests/issue0228.d text eol=lf +tests/allman/issue0228.d.ref text eol=crlf +tests/knr/issue0228.d.ref text eol=crlf +tests/otbs/issue0228.d.ref text eol=crlf + +*/ diff --git a/tests/otbs/issue0228.d.ref b/tests/otbs/issue0228.d.ref new file mode 100644 index 0000000..936d74d --- /dev/null +++ b/tests/otbs/issue0228.d.ref @@ -0,0 +1,8 @@ +/* This test relies on ../.gitattributes to contain these lines: + +tests/issue0228.d text eol=lf +tests/allman/issue0228.d.ref text eol=crlf +tests/knr/issue0228.d.ref text eol=crlf +tests/otbs/issue0228.d.ref text eol=crlf + +*/