[Issue 2783] New: Truncation of long string by std.stdio.write

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Apr 2 03:01:13 PDT 2009


http://d.puremagic.com/issues/show_bug.cgi?id=2783

           Summary: Truncation of long string by std.stdio.write
           Product: D
           Version: 2.026
          Platform: PC
               URL: http://www.britseyeview.com/middle.txt
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: steve.teale at britseyeview.com


Walter,

The file middle.txt at the URL above has lines numbered up to 555. If I read it
into a string and std.stdio.write the string to the console, the output is
truncated at line 261.

import std.file;
import std.stdio;
import std.c.stdio;

void main()
{
   string s2 = cast(immutable(char[])) std.file.read("middle.txt");
   std.stdio.write(s2);
   printf("%s", (s2 ~ "\x00").ptr);
}

It isn't std.file.read, as I got similar behavior when the string was output to
the console from the program that generated middle.txt - then it was at line
221.

I checked the string for embedded zeroes and 0x1a when it was doing the fail at
221, but it seemed to be OK.

printf works as expected.

I'm sorry I can't come up with anything more compact than this, and I'm
probably missing something stupid.

Steve


-- 



More information about the Digitalmars-d-bugs mailing list