From c812eeabc52710ef48191a9b66b81f4835657ba0 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Thu, 31 Aug 2000 23:28:52 +0000 Subject: GNUTranslations._parse(): Fix portability problems on 64-bit machines by masking all unsigned integers with 0xffffffff. --- Lib/gettext.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'Lib/gettext.py') diff --git a/Lib/gettext.py b/Lib/gettext.py index c2a549ff68..f5190a3ba6 100644 --- a/Lib/gettext.py +++ b/Lib/gettext.py @@ -129,14 +129,18 @@ class GNUTranslations(NullTranslations): def _parse(self, fp): """Override this method to support alternative .mo formats.""" + # We need to & all 32 bit unsigned integers with 0xffffff for + # portability to 64 bit machines. + MASK = 0xffffffff unpack = struct.unpack filename = getattr(fp, 'name', '') # Parse the .mo file header, which consists of 5 little endian 32 # bit words. self._catalog = catalog = {} buf = fp.read() + buflen = len(buf) # Are we big endian or little endian? - magic = unpack('