From 70d9a6d3d60b99276467832809f988fe862fa6fb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 21 Mar 2010 07:20:57 +0530 Subject: [PATCH] Don't choke if the user provides an invalid remove header/footer regexp --- src/calibre/ebooks/conversion/preprocess.py | 25 +++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/calibre/ebooks/conversion/preprocess.py b/src/calibre/ebooks/conversion/preprocess.py index 29ce0e4296..ada4f1a3af 100644 --- a/src/calibre/ebooks/conversion/preprocess.py +++ b/src/calibre/ebooks/conversion/preprocess.py @@ -230,14 +230,25 @@ class HTMLPreProcessor(object): end_rules = [] if getattr(self.extra_opts, 'remove_header', None): - end_rules.append( - (re.compile(getattr(self.extra_opts, 'header_regex')), lambda match : '') - ) + try: + end_rules.append( + (re.compile(self.extra_opts.header_regex), lambda match : '') + ) + except: + import traceback + print 'Failed to parse remove_header regexp' + traceback.print_exc() + if getattr(self.extra_opts, 'remove_footer', None): - end_rules.append( - (re.compile(getattr(self.extra_opts, 'footer_regex')), lambda match : '') - ) - + try: + end_rules.append( + (re.compile(self.extra_opts.footer_regex), lambda match : '') + ) + except: + import traceback + print 'Failed to parse remove_footer regexp' + traceback.print_exc() + if getattr(self.extra_opts, 'unwrap_factor', 0.0) > 0.01: length = line_length(html, getattr(self.extra_opts, 'unwrap_factor')) if length: