diff --git a/src/calibre/ebooks/mobi/utils.py b/src/calibre/ebooks/mobi/utils.py index 3b8ce61ba8..0d55a8d4bd 100644 --- a/src/calibre/ebooks/mobi/utils.py +++ b/src/calibre/ebooks/mobi/utils.py @@ -577,7 +577,7 @@ class CNCX(object): # {{{ pad = 0xfbf8 - buf.tell() buf.write(b'\0' * pad) self.records.append(buf.getvalue()) - buf.truncate(0) + buf.seek(0), buf.truncate(0) offset = len(self.records) * 0x10000 buf.write(raw) self.strings[key] = offset diff --git a/src/calibre/ebooks/mobi/writer2/indexer.py b/src/calibre/ebooks/mobi/writer2/indexer.py index be926a80a0..183697a1b4 100644 --- a/src/calibre/ebooks/mobi/writer2/indexer.py +++ b/src/calibre/ebooks/mobi/writer2/indexer.py @@ -500,14 +500,14 @@ class Indexer(object): # {{{ # Write offsets to index entries as an IDXT block idxt_block = b'IDXT' - buf.truncate(0) + buf.seek(0), buf.truncate(0) for offset in offsets: buf.write(pack(b'>H', header_length+offset)) idxt_block = align_block(idxt_block + buf.getvalue()) body = index_block + idxt_block header = b'INDX' - buf.truncate(0) + buf.seek(0), buf.truncate(0) buf.write(pack(b'>I', header_length)) buf.write(b'\0'*4) # Unknown buf.write(pack(b'>I', 1)) # Header type? Or index record number?