From 8677789312dfa5ef1a89de5f6bc5ff4cb6893583 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 5 Feb 2012 09:53:34 +0530 Subject: [PATCH] Prevent custom plugins from messing with sys.stdout and sys.stderr --- src/calibre/customize/ui.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index 25e85e8788..dbde947e42 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -504,6 +504,7 @@ def initialize_plugins(): for p in conflicts: remove_plugin(p) external_plugins = config['plugins'] + ostdout, ostderr = sys.stdout, sys.stderr for zfp in list(external_plugins) + builtin_plugins: try: if not isinstance(zfp, type): @@ -522,6 +523,9 @@ def initialize_plugins(): print 'Failed to initialize plugin:', repr(zfp) if DEBUG: traceback.print_exc() + # Prevent a custom plugin from overriding stdout/stderr as this breaks + # ipython + sys.stdout, sys.stderr = ostdout, ostderr _initialized_plugins.sort(cmp=lambda x,y:cmp(x.priority, y.priority), reverse=True) reread_filetype_plugins() reread_metadata_plugins()