@@ -226,6 +226,11 @@ multiString fp offset terminal row col initialOffset builder =
226226 multiString fp offset1 terminal (row + 1) 1 offset1 $
227227 addBits newlineBits fp initialOffset offset builder
228228
229+ else if word == 0x0D {- \r -} then
230+ let !offset1 = offset + 1 in
231+ multiString fp offset1 terminal (row + 1) 1 offset1 $
232+ addBits carriageReturnBits fp initialOffset offset builder
233+
229234 else if word == 0x5C {- \ -} then
230235 case eatEscape fp (offset + 1) terminal of
231236 EscapeNormal ->
@@ -344,6 +349,12 @@ newlineBits =
344349 "\\n"
345350
346351
352+{-# NOINLINE carriageReturnBits #-}
353+carriageReturnBits :: Text.Builder
354+carriageReturnBits =
355+ "\\r"
356+
357+
347358
348359---- CHUNKS
349360