From 12eb3bf6a0d7fc2e9d1b4b36047f111d971b622b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 10 Sep 2009 19:12:28 -0600 Subject: [PATCH] Fix #3448 (Problems loading HTML files in v6.11) --- src/calibre/ebooks/html/input.py | 4 ++-- src/calibre/ebooks/oeb/base.py | 1 + src/calibre/library/cli.py | 3 ++- src/calibre/utils/ipc/__init__.py | 14 ++++++++++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/calibre/ebooks/html/input.py b/src/calibre/ebooks/html/input.py index ba468bd55a..008a7d104b 100644 --- a/src/calibre/ebooks/html/input.py +++ b/src/calibre/ebooks/html/input.py @@ -262,9 +262,9 @@ class HTMLInput(InputFormatPlugin): ) ), - OptionRecommendation(name='unwrap_factor', recommended_value=0.5, + OptionRecommendation(name='unwrap_factor', recommended_value=None, help=_('Average line length for line breaking if the HTML is from a ' - 'previous partial conversion of a PDF file.')), + 'previous partial conversion of a PDF file. Default is %default.')), ]) diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index 2e06fffe4e..5516e78663 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -773,6 +773,7 @@ class Manifest(object): data = self.oeb.decode(data) data = self.oeb.html_preprocessor(data) + # Remove DOCTYPE declaration as it messes up parsing # Inparticular it causes tostring to insert xmlns # declarations, which messes up the coercing logic diff --git a/src/calibre/library/cli.py b/src/calibre/library/cli.py index d532b23463..1890c54223 100644 --- a/src/calibre/library/cli.py +++ b/src/calibre/library/cli.py @@ -98,9 +98,10 @@ STANZA_TEMPLATE='''\ ''' def send_message(msg=''): + prints('Notifying calibre of the change') from calibre.utils.ipc import RC import time - t = RC() + t = RC(print_error=False) t.start() time.sleep(3) if t.done: diff --git a/src/calibre/utils/ipc/__init__.py b/src/calibre/utils/ipc/__init__.py index 92cb3d8afa..6adc250bb7 100644 --- a/src/calibre/utils/ipc/__init__.py +++ b/src/calibre/utils/ipc/__init__.py @@ -16,10 +16,20 @@ ADDRESS = r'\\.\pipe\CalibreGUI' if iswindows else \ class RC(Thread): + def __init__(self, print_error=True): + self.print_error = print_error + Thread.__init__(self) + self.conn = None + def run(self): from multiprocessing.connection import Client self.done = False - self.conn = Client(ADDRESS) - self.done = True + try: + self.conn = Client(ADDRESS) + self.done = True + except: + if self.print_error: + import traceback + traceback.print_exc()