Catalog generation: Fix a rare crash when generating very large catalogs. Fixes #1965182 [cannot create epub nor mobi catalog](https://bugs.launchpad.net/calibre/+bug/1965182)

This commit is contained in:
Kovid Goyal 2022-03-17 18:52:33 +05:30
parent bc44f19504
commit 3f8c675690
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -1377,21 +1377,15 @@ class CatalogBuilder:
(str): BeautifulSoup HTML snippet to be inserted into <p> line item entry.
"""
soup = BeautifulSoup('')
prefix_char = prepare_string_for_xml(prefix_char or NBSP)
if self.opts.fmt == 'mobi':
codeTag = soup.new_tag("code")
if prefix_char is None:
codeTag.insert(0, NavigableString(NBSP))
tagname = 'code'
html = f'<{tagname}>{prefix_char}</{tagname}>'
else:
codeTag.insert(0, NavigableString(prefix_char))
return codeTag
else:
spanTag = soup.new_tag("span")
spanTag['class'] = "prefix"
if prefix_char is None:
prefix_char = NBSP
spanTag.insert(0, NavigableString(prefix_char))
return spanTag
tagname = 'span'
html = f'<{tagname} class="prefix">{prefix_char}</{tagname}>'
soup = BeautifulSoup(html)
return soup.find(tagname)
def generate_author_anchor(self, author):
""" Generate legal XHTML anchor.