Macintosh text file with invalid line breaks are created

Andre Pany via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Sep 28 10:11:32 PDT 2016


On Wednesday, 28 September 2016 at 16:53:24 UTC, Vladimir 
Panteleev wrote:
> On Wednesday, 28 September 2016 at 06:52:51 UTC, Andre Pany 
> wrote:
>
> Since the file is opened in text mode (which is the default), 
> the C runtime automatically translates the single \n to a \r\n 
> pair when writing the file. Since std.ascii.newline is defined 
> to be "\r\n" on Windows, it ends up being written as "\r\r\n".
>
> You could either open the file in binary mode (use "wb" as the 
> second argument), or always use "\n" for line separators.

Thank you so much, I was already getting crazy about this. I just 
checked whether this information is included in library 
documentation for std.stdio.
If I havent't miss s.th. this isn't mentioned directly but only 
as a side information in this sentence: Use std.ascii.newline for 
portability (unless the file was opened in text mode).

I will create a bug report, for users without C knowledge, this 
is a trap:)

Kind regards
André



More information about the Digitalmars-d-learn mailing list