mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Conversion: Do not error out because of an error in user supplied search replace rules. See #1102647
This commit is contained in:
parent
b79fdfe65a
commit
d45534ccc8
@ -515,6 +515,7 @@ class HTMLPreProcessor(object):
|
|||||||
if not getattr(self.extra_opts, 'keep_ligatures', False):
|
if not getattr(self.extra_opts, 'keep_ligatures', False):
|
||||||
html = _ligpat.sub(lambda m:LIGATURES[m.group()], html)
|
html = _ligpat.sub(lambda m:LIGATURES[m.group()], html)
|
||||||
|
|
||||||
|
user_sr_rules = {}
|
||||||
# Function for processing search and replace
|
# Function for processing search and replace
|
||||||
def do_search_replace(search_pattern, replace_txt):
|
def do_search_replace(search_pattern, replace_txt):
|
||||||
try:
|
try:
|
||||||
@ -522,6 +523,7 @@ class HTMLPreProcessor(object):
|
|||||||
if not replace_txt:
|
if not replace_txt:
|
||||||
replace_txt = ''
|
replace_txt = ''
|
||||||
rules.insert(0, (search_re, replace_txt))
|
rules.insert(0, (search_re, replace_txt))
|
||||||
|
user_sr_rules[(search_re, replace_txt)] = search_pattern
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log.error('Failed to parse %r regexp because %s' %
|
self.log.error('Failed to parse %r regexp because %s' %
|
||||||
(search, as_unicode(e)))
|
(search, as_unicode(e)))
|
||||||
@ -587,7 +589,16 @@ class HTMLPreProcessor(object):
|
|||||||
#dump(html, 'pre-preprocess')
|
#dump(html, 'pre-preprocess')
|
||||||
|
|
||||||
for rule in rules + end_rules:
|
for rule in rules + end_rules:
|
||||||
html = rule[0].sub(rule[1], html)
|
try:
|
||||||
|
html = rule[0].sub(rule[1], html)
|
||||||
|
except re.error as e:
|
||||||
|
if rule in user_sr_rules:
|
||||||
|
self.log.error(
|
||||||
|
'User supplied search & replace rule: %s -> %s '
|
||||||
|
'failed with error: %s, ignoring.'%(
|
||||||
|
user_sr_rules[rule], rule[1], e))
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
|
||||||
if is_pdftohtml and length > -1:
|
if is_pdftohtml and length > -1:
|
||||||
# Dehyphenate
|
# Dehyphenate
|
||||||
|
Loading…
x
Reference in New Issue
Block a user