digitalmars.D.bugs - [Issue 4555] New: Double newlines with std.file.readText
- d-bugmail puremagic.com (48/48) Aug 01 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4555
- d-bugmail puremagic.com (19/19) Mar 21 2013 http://d.puremagic.com/issues/show_bug.cgi?id=4555
- d-bugmail puremagic.com (8/9) Mar 23 2013 http://d.puremagic.com/issues/show_bug.cgi?id=4555
http://d.puremagic.com/issues/show_bug.cgi?id=4555 Summary: Double newlines with std.file.readText Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc This is a D2 program: import std.file: readText; import std.stdio: write; void main() { string s = readText("test.d"); write(s); } With DMD 2.047 on a 32 bit Windows Vista Home this D2 program prints all newlines doubled (assuming the program is named "test.d"): import std.file: readText; import std.stdio: write; void main() { string s = readText("test.d"); write(s); } Saving the same source code with in UNIX style the doubling of newlines doesn't happen. One or two testers have not found this problem on Windows XP. This program: import std.file: readText; import std.stdio: write; void main() { string s = readText("bug15.d"); foreach (c; s[0 .. 35]) write(cast(int)c, " "); } Prints: 105 109 112 111 114 116 32 115 116 100 46 102 105 108 101 58 32 114 101 97 100 84 101 120 116 59 13 10 105 109 112 111 114 116 32 Note the normal sequence of the newline of the first line plus the "i" char at the start of the second line: 13 10 105 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 01 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4555 Nick Sabalausky <cbkbbejeap mailinator.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cbkbbejeap mailinator.com 08:03:08 PDT --- The 'write' function converts \n to \r\n on windows (And therefore also converts \r\n to \r\r\n). Is it possible this problem is *just* write and not readText at all? Try converting all of the 'write' into 'stdout.rawWrite'. Also, since windows command line displays *both* \n and \r\n as single newlines, your test should redirect the output to a file, and then examine the result in either a hex editor or a code editor that supports displaying line-ending characters (such as Programmer's Notepad 2). http://d.puremagic.com/issues/show_bug.cgi?id=9776 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 21 2013
http://d.puremagic.com/issues/show_bug.cgi?id=4555Try converting all of the 'write' into 'stdout.rawWrite'.If I use stdout.rawWrite then the duplication of newlines (in the first program) doesn't happen. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 23 2013