From b187f4d46bfd4dfab6673b4ba7beb1745fa0eb47 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 24 Feb 2008 19:37:21 +0000 Subject: [PATCH] Fix handling of MOBI files created with earlier versions of mobigen --- src/libprs500/ebooks/mobi/reader.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libprs500/ebooks/mobi/reader.py b/src/libprs500/ebooks/mobi/reader.py index b93079da6f..cb6db14016 100644 --- a/src/libprs500/ebooks/mobi/reader.py +++ b/src/libprs500/ebooks/mobi/reader.py @@ -101,15 +101,17 @@ class BookHeader(object): except IndexError, KeyError: raise MobiError('Unknown codepage: %d'%self.codepage) - if ident == 'TEXTREAD': + if ident == 'TEXTREAD' or self.length < 0xF4: self.extra_flags = 0 else: self.extra_flags, = struct.unpack('>L', raw[0xF0:0xF4]) + if self.compression_type == 'DH': self.huff_offset, self.huff_number = struct.unpack('>LL', raw[0x70:0x78]) self.exth_flag, = struct.unpack('>L', raw[0x80:0x84]) + self.exth = None if self.exth_flag & 0x40: self.exth = EXTHHeader(raw[16+self.length:], self.codec)