Did Mac OS Lion switch to using line feeds (LF '\n') for line breaks instead of carriage returns (CR '\r')?

33

6

I switched to Lion a while back and just noticed that when I save a text file in TextEdit, it uses LF for line breaks. I looked around everywhere I could think of on my Lion computer and could not find any evidence of files using CR for line breaks even though I remember that Macs always used to use CR despite Unix using LF and Windows using CR+LF. When I learned that OS X was based on Unix, I even checked on my Snow Leopard and was disappointed that it stilled used CR.

So did Lion switch to using LF?

The strangest thing is I searched all over the web and cannot find any evidence of Lion using LF.

Matt

Posted 2012-06-20T19:16:24.097

Reputation: 737

Answers

49

I remember that Macs always used to use CR despite Unix using LF and Windows using CR+LF

Your memory is from the good old times though: Mac OS X, as POSIX-compliant Unix uses the typical Unix LF.

CR is a relict from the "classic" Mac OS, it's not used anymore.

For example, check the manpage of unix2dos (emphasis mine):

In DOS/Windows text files a line break, also known as newline, is a combination of two characters: a Carriage Return (CR) followed by a Line Feed (LF). In Unix text files a line break is a single character: the Line Feed (LF). In Mac text files, prior to Mac OS X, a line break was single Carriage Return (CR) character. Nowadays Mac OS uses Unix style (LF) line breaks.

An even more authoritative reference: Shell Scripting Primer: Designing Scripts for Cross-Platform Deployment

Command-line tools in Mac OS X (and other UNIX or Linux variants) use UNIX-style line endings. This means that each line in a text file ends with a newline character (character 10/0xA, often abbreviated LF).

Many older Mac applications use "Mac-style” line endings. This means that each line in a text file ends with a carriage return character (character 13/0xD, often abbreviated CR).

slhck

Posted 2012-06-20T19:16:24.097

Reputation: 182 472

Thank you for this answer! I'm trying to add TI-89 programs to my Git repository that all end in \r and Git is having trouble with it.

– NobleUplift – 2019-08-30T17:30:13.030

I'm not sure if I can help you with your question though. If it's not answered by my post, consider editing it to have it reopened. – slhck – 2019-08-31T12:14:49.013

I specifically remember on Snow Leopard it used CR. – Matt – 2012-06-20T20:03:48.137

1I am on Snow Leopard and it does not use carriage returns, neither in TextEdit, TextWrangler, TextMate, vim, emacs, nano, when echoing to a file, et cetera. And there is semi-authoritative reference on that, so you must have set your editor on Snow Leopard to use carriage returns then. – slhck – 2012-06-20T20:06:33.967

8I figured it out: The problem is with Microsoft Excel. When you save a CSV file on a Mac, it uses CR. – Matt – 2012-06-20T20:09:19.423

5Well, talk about Microsoft software on OS X. I was aware of that problem with Excel's CSV files though, I ran into issues with that myself. – slhck – 2012-06-20T20:11:14.133