On Sat, 31 Jul 2010 23:10:05 -0400, Andrej Mitrovic <[email protected]> wrote:

Oh and I'm getting the same issue in Python when using CR only. I don't know why I have the CR option in the text editor if it doesn't work properly. I guess CR is used on the Macs maybe..?

Andrej Mitrovic Wrote:

I'm getting normal newlines here (XP):

C:\output>test.exe
import std.file: readText;
import std.stdio: write;
void main() {
    string s = readText("test.d");
    write(s);
}

The text used CR+LF newlines. I also tried them using LF newlines, which worked fine. But I've then tried with CR and that gives out weird output like so:

}   write(s);= readText("test.d");

CR means carriage return. This is for old-style line printers. When you sent a CR, it means, literally, move the carriage back to the front of the line. When you sent a LF (line feed), it means, feed the paper another line.

If you printed a file to such a printer with just line feeds, you would see:

import std.file: readText;
                          import std.stdio: write;
                                                  void main() {
...


If you printed the file with just CRs, you would see all the lines super-imposed over eachother, because the paper is never moved, just the carriage is returned.

This is the effect you are seeing, each line is super-imposed over the other. However, on a terminal, you don't see the residual letters from previously printed lines, they are completely overwritten.

Essentially, if you put in a sleep between printing each line, what you'd see is this:

import std.file: readText;

.. pause ..

import std.stdio: write;t;

.. pause ..

void main() {dio: write;t;

....

Hope this helps ;)

-Steve

Reply via email to