Ahhum. Let me clarify:

The 'bug' I referred to demonstrates itself in C compilers that aren't prepared to Microsoft stupidity. You see, normally, when you want to continue a literal (#define, "") over a linefeed, you escape it, because normally linefeed terminates #defines and gives syntax error inside "". So, you put '\' in the end of the line. Now, when compiler reads it, to it the bytes are: '\' 0x0a, that is, backlash and '\n'. Since it's possible to escape so that backlash-anycharacter will do something interesting, backlash-linefeed was defined as "nothing" so as to make this line continuing easy.

Now, in the light of above writeup... what do you get when you escape? Right. You get "backlash-0x0d-0x0a" (or '\' '\r' '\n'). Now the compiler will escape the \r, leaving \n there. And since DOS idiots just had to force the linefeeds work that way so there is no way to insert another \ between \r and \n ... bye-bye line continuing.

I don't know, but I'd guess, that most DOS compilers work around this in an undstandard way that really makes three-character escape of '\' '\r' '\n' which surely broke something and added to the bloat, but decent unix compilers like cygwin port of gcc do just what is logical; complain about syntax error as if you had not put that '\' there.

...

Now, as for the '0x0d 0x0a' behaviour itself being a bug... no comments. This whole DoS thing is a boot sector virus, so why not...