Eu encontrei um tópico em outro lugar sobre esse "bug", incluindo uma correção ("bug" entre aspas porque parece uma decisão de design dos desenvolvedores do Emacs, apenas uma que não funciona para mim).
Seiji Zenitani abriu o tópico e postou uma solução que alguém lhe enviou (ele não diz quem), que postarei abaixo caso o tópico desapareça. Os comentários são meus; o código é como ele postou.
A essência disso é que há uma tradução (aparentemente) deliberada do modo unix para as terminações de linha no modo Mac ao copiar um Emacs-cut ou -copy para o pasteboard OS-X (\ n - > \ r, exatamente o que eu estava vendo). Indiscutivelmente, o papelão é usado com mais freqüência para colar em aplicativos do Mac, portanto, traduzir para o modo Mac na área de trabalho faria sentido. Igualmente discutível é que os usuários do Emacs provavelmente estarão trabalhando no Unix subjacente, então copiar as strings no modo unix faz sentido, e essa é a solução que escolhi. Isso ajuda que a maioria dos aplicativos Mac parecem aceitar strings no modo Unix.
A correção:
;; Bug fix for: "After Emacs copy, OS-X paste buffer gets CRs where LFs used to be", ;; by redefining .../term/mac-win.el/mac-string-to-utxt. ;; Line 7 changes coding system to unix (was mac) ;; Lines 23,24 delete "-mac" from "utf-16be-mac" and "utf-16le-mac" and appear ;; to apply to Japanese encodings. ;; See: http://old.nabble.com/Fwd%3A-Line-endings-bug-to10657191.html#a10730618 (defun mac-string-to-utxt (string &optional coding-system) (or coding-system (setq coding-system mac-system-coding-system)) (let (data encoding) (when (and (fboundp 'mac-code-convert-string) (memq (coding-system-base coding-system) (find-coding-systems-string string))) (setq coding-system (coding-system-change-eol-conversion coding-system 'unix)) (let ((str string)) (when (and (eq system-type 'darwin) (eq coding-system 'japanese-shift-jis-mac)) (setq encoding mac-text-encoding-mac-japanese-basic-variant) (setq str (subst-char-in-string ?\ ?\x80 str)) (subst-char-in-string ?\ ?\x5c str t) ;; ASCII-only? (if (string-match "\'[\x00-\x7f]*\'" str) (setq str nil))) (and str (setq data (mac-code-convert-string (encode-coding-string str coding-system) (or encoding coding-system) nil))))) (or data (encode-coding-string string (if (eq (byteorder) ?B) 'utf-16be 'utf-16le)))))