summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Skeleton (bot) <31488909+miss-islington@users.noreply.github.com>2020-11-01 09:39:16 (GMT)
committerGitHub <noreply@github.com>2020-11-01 09:39:16 (GMT)
commit39a56e55231be00d52fa183fcd2b7d88619ced4b (patch)
tree863df8b0963e33586883da4036c0efd8ffe85490
parent10260c737b19a99eab532fcccf2b0a1ffcb0805d (diff)
downloadcpython-39a56e55231be00d52fa183fcd2b7d88619ced4b.zip
cpython-39a56e55231be00d52fa183fcd2b7d88619ced4b.tar.gz
cpython-39a56e55231be00d52fa183fcd2b7d88619ced4b.tar.bz2
[3.8] bpo-29566: binhex.binhex now consitently writes MacOS 9 line endings. (GH-23059) (GH-23070)
[[bpo-29566]()]() notes that binhex.binhex uses inconsistent line endings (both Unix and MacOS9 line endings are used). This PR changes this to use the MacOS9 line endings everywhere. (cherry picked from commit 2165cea548f961b308050f30d1f042a377651d44) Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com> Automerge-Triggered-By: GH:ronaldoussoren
-rw-r--r--Lib/binhex.py4
-rw-r--r--Lib/test/test_binhex.py12
-rw-r--r--Misc/NEWS.d/next/Library/2020-10-31-13-28-36.bpo-29566.6aDbty.rst1
3 files changed, 15 insertions, 2 deletions
diff --git a/Lib/binhex.py b/Lib/binhex.py
index 56b5f85..a4d8789 100644
--- a/Lib/binhex.py
+++ b/Lib/binhex.py
@@ -100,12 +100,12 @@ class _Hqxcoderengine:
first = 0
while first <= len(self.hqxdata) - self.linelen:
last = first + self.linelen
- self.ofp.write(self.hqxdata[first:last] + b'\n')
+ self.ofp.write(self.hqxdata[first:last] + b'\r')
self.linelen = LINELEN
first = last
self.hqxdata = self.hqxdata[first:]
if force:
- self.ofp.write(self.hqxdata + b':\n')
+ self.ofp.write(self.hqxdata + b':\r')
def close(self):
if self.data:
diff --git a/Lib/test/test_binhex.py b/Lib/test/test_binhex.py
index 2f3d53a..c92cfac 100644
--- a/Lib/test/test_binhex.py
+++ b/Lib/test/test_binhex.py
@@ -45,6 +45,18 @@ class BinHexTestCase(unittest.TestCase):
self.assertRaises(binhex.Error, binhex.binhex, self.fname3, self.fname2)
+ def test_binhex_line_endings(self):
+ # bpo-29566: Ensure the line endings are those for macOS 9
+ with open(self.fname1, 'wb') as f:
+ f.write(self.DATA)
+
+ binhex.binhex(self.fname1, self.fname2)
+
+ with open(self.fname2, 'rb') as fp:
+ contents = fp.read()
+
+ self.assertNotIn(b'\n', contents)
+
def test_main():
support.run_unittest(BinHexTestCase)
diff --git a/Misc/NEWS.d/next/Library/2020-10-31-13-28-36.bpo-29566.6aDbty.rst b/Misc/NEWS.d/next/Library/2020-10-31-13-28-36.bpo-29566.6aDbty.rst
new file mode 100644
index 0000000..d54c714
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-10-31-13-28-36.bpo-29566.6aDbty.rst
@@ -0,0 +1 @@
+``binhex.binhex()`` consisently writes macOS 9 line endings.