Fix bugs in generation of uncrossable breaks.

This commit is contained in:
Marshall T. Vandegrift 2008-12-31 09:44:11 -05:00
parent 3e9401d2d2
commit cc0185ba92

View File

@ -241,12 +241,13 @@ class MobiWriter(object):
record = [data, '\0'] record = [data, '\0']
nextra = 0 nextra = 0
pbreak = 0 pbreak = 0
running = 0 running = offset
while breaks and (breaks[0] - offset) < RECORD_SIZE: while breaks and (breaks[0] - offset) < RECORD_SIZE:
pbreak = (breaks.pop(0) - running) >> 3 pbreak = (breaks.pop(0) - running) >> 3
record.append(decint(pbreak)) encoded = decint(pbreak)
record.append(encoded)
running += pbreak << 3 running += pbreak << 3
nextra += 1 nextra += len(encoded)
record.append(decint(nextra + 1)) record.append(decint(nextra + 1))
self._records.append(''.join(record)) self._records.append(''.join(record))
nrecords += 1 nrecords += 1