Blob Blame History Raw
From be7d52261269d0e40c2b23d4baa6d4d178a7acb7 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@archlinux.org>
Date: Thu, 25 Jul 2019 00:35:57 -0400
Subject: [PATCH 21/71] py3: read in raw data files as binary

Not specifying the mode means it will be open in text mode which can
munge linebreaks on some platforms and yields the wrong type of string
on py3.
---
 src/calibre/gui2/actions/edit_metadata.py | 2 +-
 src/calibre/gui2/metadata/single.py       | 2 +-
 src/calibre/utils/fonts/win_fonts.py      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py
index ac0f572f1d..8a11468de7 100644
--- a/src/calibre/gui2/actions/edit_metadata.py
+++ b/src/calibre/gui2/actions/edit_metadata.py
@@ -937,7 +937,7 @@ class EditMetadataAction(InterfaceAction):
                 if old != prefs['read_file_metadata']:
                     prefs['read_file_metadata'] = old
             if mi.cover and os.access(mi.cover, os.R_OK):
-                with open(mi.cover) as f:
+                with open(mi.cover, 'rb') as f:
                     cdata = f.read()
             elif mi.cover_data[1] is not None:
                 cdata = mi.cover_data[1]
diff --git a/src/calibre/gui2/metadata/single.py b/src/calibre/gui2/metadata/single.py
index 4cdd2aa2a1..b251c137ef 100644
--- a/src/calibre/gui2/metadata/single.py
+++ b/src/calibre/gui2/metadata/single.py
@@ -461,7 +461,7 @@ class MetadataSingleDialogBase(QDialog):
             return
         cdata = None
         if mi.cover and os.access(mi.cover, os.R_OK):
-            with open(mi.cover) as f:
+            with open(mi.cover, 'rb') as f:
                 cdata = f.read()
         elif mi.cover_data[1] is not None:
             cdata = mi.cover_data[1]
diff --git a/src/calibre/utils/fonts/win_fonts.py b/src/calibre/utils/fonts/win_fonts.py
index 1d85e56c3e..d7280f2051 100644
--- a/src/calibre/utils/fonts/win_fonts.py
+++ b/src/calibre/utils/fonts/win_fonts.py
@@ -148,7 +148,7 @@ def load_winfonts():
 
 def test_ttf_reading():
     for arg in sys.argv[1:]:
-        with open(arg) as f:
+        with open(arg, 'rb') as f:
             raw = f.read()
         print(os.path.basename(arg))
         get_font_characteristics(raw)