From 9a2d9d7f04f2ed08574c670bb5ee8ead2a4048ce 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(-) diff --git a/Lib/gettext.py b/Lib/gettext.py index c2a549f..f5190a3 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('