From b75253dc82a0d3d7b84108c9571531ab40ceefef Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 7 Jan 2011 14:53:12 +0100 Subject: [PATCH] Fix a traceback when removing files with globbed toctrees. --- CHANGES | 2 ++ sphinx/environment.py | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index e8d6620ad..92bc62896 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ Release 1.0.7 (in development) ============================== +* Fix a traceback when removing files with globbed toctrees. + * If an autodoc object cannot be imported, always re-read the document containing the directive on next build. diff --git a/sphinx/environment.py b/sphinx/environment.py index c888e43e8..2c0dc99ea 100644 --- a/sphinx/environment.py +++ b/sphinx/environment.py @@ -498,7 +498,8 @@ class BuildEnvironment: # if files were added or removed, all documents with globbed toctrees # must be reread if added or removed: - changed.update(self.glob_toctrees) + # ... but not those that already were removed + changed.update(self.glob_toctrees & self.found_docs) msg += '%s added, %s changed, %s removed' % (len(added), len(changed), len(removed)) @@ -630,6 +631,11 @@ class BuildEnvironment: codecs.register_error('sphinx', self.warn_and_replace) class SphinxSourceClass(FileInput): + def __init__(self_, *args, **kwds): + # don't call sys.exit() on IOErrors + kwds['handle_io_errors'] = False + FileInput.__init__(self_, *args, **kwds) + def decode(self_, data): return data.decode(self_.encoding, 'sphinx')