From a85d31c36a7157e051dc27c391208e83189182c8 Mon Sep 17 00:00:00 2001 From: Dietrich Epp Date: Fri, 19 Mar 2021 14:11:11 -0400 Subject: [PATCH] Fix Unix to Mac line ending conversion GitOrigin-RevId: fac10ee30d9bcbb6f902c46509d64efb249b6cd4 --- mac_from_unix.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mac_from_unix.c b/mac_from_unix.c index 6f60748..3ed399b 100644 --- a/mac_from_unix.c +++ b/mac_from_unix.c @@ -12,7 +12,8 @@ static void print_uerr(const unsigned char *start, const unsigned char *end) { int lineno = 1, colno = 0; for (ptr = start; ptr != end; ptr++) { colno++; - if (*ptr == '\r') { + // Note: \r != 0x0d, \n != 0x0a on old Mac compilers. + if (*ptr == 0x0a || *ptr == 0x0d) { lineno++; colno = 0; } @@ -37,8 +38,9 @@ int mac_from_unix(unsigned char **outptr, unsigned char *outend, while (ip < inend && op < outend) { c = *ip; if (c < 128) { - if (c == '\n') { - c = '\r'; + // Note: \r != 0x0d, \n != 0x0a on old Mac compilers. + if (c == 0x0a) { + c = 0x0d; } if (op == outend) { break;