これは単なるテキスト検索と置換です。
MSDOS の子孫などで使用される標準の ASCII 改行シーケンスは、LF CR ではなく CR LF であり、決して では0D0A
表されないことに注意してください。\r\n
\n\r
C で検索と置換に使用した一般的なパターンに従います…</p>
void fix_newlines( char * base ) {
char * read = base;
char * write = base;
while ( char * next = strstr( read, "\\n\\r" ) ) {
memmove( write, read, next - read ); /* Copy text. */
write += next - read; /* Advance past text. */
read = next + 4; /* Advance past text and escape sequences. */
strcpy( write, "\r\n" ); /* Translate to CRLF. */
write += 2; /* Advance past CRLF. */
}
strcpy( write, read ); /* Copy trailing text. */
}