MOBI Output: When outputting joint KF8/MOBI6 files set the first/last content record fields in the MOBI 6 header correctly

This commit is contained in:
Kovid Goyal 2012-05-11 11:32:59 +05:30
parent 4c68a73e11
commit b660972f25
2 changed files with 4 additions and 3 deletions

View File

@ -415,8 +415,8 @@ class MOBIHeader(object): # {{{
if self.has_extra_data_flags:
a('Unknown4: %r'%self.unknown4)
if hasattr(self, 'first_text_record'):
a('First text record: %d'%self.first_text_record)
a('Last text record: %d'%self.last_text_record)
a('First content record: %d'%self.first_text_record)
a('Last content record: %d'%self.last_text_record)
else:
r('FDST Index', 'fdst_idx')
a('FDST Count: %d'% self.fdst_count)

View File

@ -382,6 +382,7 @@ class MobiWriter(object):
first_image_record = len(self.records)
self.resources.serialize(self.records, used_images)
resource_record_count = len(self.records) - old
last_content_record = len(self.records) - 1
# FCIS/FLIS (Seems to serve no purpose)
flis_number = len(self.records)
@ -406,7 +407,7 @@ class MobiWriter(object):
# header
header_fields['first_resource_record'] = first_image_record
header_fields['exth_flags'] = 0b100001010000 # Kinglegen uses this
header_fields['fdst_record'] = NULL_INDEX
header_fields['fdst_record'] = pack(b'>HH', 1, last_content_record)
header_fields['fdst_count'] = 1 # Why not 0? Kindlegen uses 1
header_fields['flis_record'] = flis_number
header_fields['fcis_record'] = fcis_number