Of course, this is because the CRLF appears as CR-NUL-LF.
The short-term fix is to read-ahead with we get a CR to see if the next
character is an LF, and, if, translate to LF.
This is a short-term fix because it's implemented in a clumsy way
(with a seek, instead of a buffer) and because it only applies to one
format, whereas all formats should have a similar problem on GNU/Linux.