This commit is contained in:
Kovid Goyal 2015-09-27 07:58:24 +05:30
parent d1f27b449f
commit 353624aca3

View File

@ -12,6 +12,7 @@ import struct, sys, base64, re
from collections import defaultdict from collections import defaultdict
from calibre.ebooks.metadata.book.base import Metadata from calibre.ebooks.metadata.book.base import Metadata
from calibre.ebooks.mobi.utils import decint
from calibre.utils.cleantext import clean_xml_chars from calibre.utils.cleantext import clean_xml_chars
from calibre.utils.config_base import tweaks from calibre.utils.config_base import tweaks
from calibre.utils.date import parse_only_date from calibre.utils.date import parse_only_date
@ -220,11 +221,9 @@ class PackedIon(PackedData):
def unpack_number(self): def unpack_number(self):
# variable length numbers, MSB first, 7 bits per byte, last byte is # variable length numbers, MSB first, 7 bits per byte, last byte is
# flagged by MSB set # flagged by MSB set
number = 0 raw = self.buffer[self.offset:self.offset+10]
while (True): number, consumed = decint(raw)
byte = self.unpack_one('B') self.advance(consumed)
number = (number << 7) | (byte & 0x7f)
if byte >= 0x80:
return number return number
def unpack_unsigned_int(self, length): def unpack_unsigned_int(self, length):