diff --git a/src/calibre/ebooks/lrf/any/convert_from.py b/src/calibre/ebooks/lrf/any/convert_from.py index 4142c71c55..ab66fc1b89 100644 --- a/src/calibre/ebooks/lrf/any/convert_from.py +++ b/src/calibre/ebooks/lrf/any/convert_from.py @@ -158,7 +158,10 @@ def main(args=sys.argv, logger=None, gui_mode=False): print _('No file to convert specified.') return 1 - return process_file(args[1], options, logger) + src = args[1] + if not isinstance(src, unicode): + src = src.decode(sys.getfilesystemencoding()) + return process_file(src, options, logger) if __name__ == '__main__': sys.exit(main()) diff --git a/src/calibre/ebooks/lrf/html/convert_from.py b/src/calibre/ebooks/lrf/html/convert_from.py index 6dc268e9eb..aca8cf96b3 100644 --- a/src/calibre/ebooks/lrf/html/convert_from.py +++ b/src/calibre/ebooks/lrf/html/convert_from.py @@ -30,7 +30,7 @@ from calibre.ebooks.lrf import option_parser as lrf_option_parser from calibre.ebooks import ConversionError from calibre.ebooks.lrf.html.table import Table from calibre import filename_to_utf8, setup_cli_handlers, __appname__, \ - fit_image, LoggingInterface + fit_image, LoggingInterface, preferred_encoding from calibre.ptempfile import PersistentTemporaryFile from calibre.ebooks.metadata.opf import OPFReader from calibre.devices.interface import Device @@ -1853,6 +1853,8 @@ def process_file(path, options, logger=None): options.force_page_break = fpb options.link_exclude = le options.page_break = pb + if not isinstance(options.chapter_regex, unicode): + options.chapter_regex = options.chapter_regex.decode(preferred_encoding) options.chapter_regex = re.compile(options.chapter_regex, re.IGNORECASE) fpba = options.force_page_break_attr.split(',') if len(fpba) != 3: @@ -1969,7 +1971,8 @@ def main(args=sys.argv): except Exception, err: print >> sys.stderr, err return 1 - + if not isinstance(src, unicode): + src = src.decode(sys.getfilesystemencoding()) process_file(src, options) return 0 diff --git a/src/calibre/parallel.py b/src/calibre/parallel.py index a9490f4922..307c894cfe 100644 --- a/src/calibre/parallel.py +++ b/src/calibre/parallel.py @@ -11,7 +11,10 @@ from calibre.ebooks.lrf.any.convert_from import main as any2lrf from calibre.ebooks.lrf.web.convert_from import main as web2lrf from calibre.ebooks.lrf.feeds.convert_from import main as feeds2lrf from calibre.gui2.lrf_renderer.main import main as lrfviewer -from calibre.ebooks.lrf.html.table_as_image import do_render as render_table +try: + from calibre.ebooks.lrf.html.table_as_image import do_render as render_table +except: # Dont fail is PyQt4.4 not present + render_table = None from calibre import iswindows, __appname__, islinux try: from calibre.utils.single_qt_application import SingleApplication