Closes #811: dont eat up UnicodeErrors during reading anymore

This commit is contained in:
Georg Brandl 2014-01-19 18:43:26 +01:00
parent 63b4f3bfae
commit 7e2ca25ee0
2 changed files with 9 additions and 5 deletions

View File

@ -273,6 +273,13 @@ def main(argv):
elif isinstance(err, SphinxError): elif isinstance(err, SphinxError):
print >>error, red('%s:' % err.category) print >>error, red('%s:' % err.category)
print >>error, terminal_safe(unicode(err)) print >>error, terminal_safe(unicode(err))
elif isinstance(err, UnicodeError):
print >>error, red('Encoding error:')
print >>error, terminal_safe(unicode(err))
tbpath = save_traceback(app)
print >>error, red('The full traceback has been saved '
'in %s, if you want to report the '
'issue to the developers.' % tbpath)
else: else:
print >>error, red('Exception occurred:') print >>error, red('Exception occurred:')
print >>error, format_exception_cut_frames().rstrip() print >>error, format_exception_cut_frames().rstrip()

View File

@ -614,11 +614,8 @@ class BuildEnvironment:
pub.process_programmatic_settings(None, self.settings, None) pub.process_programmatic_settings(None, self.settings, None)
pub.set_source(None, src_path.encode(fs_encoding)) pub.set_source(None, src_path.encode(fs_encoding))
pub.set_destination(None, None) pub.set_destination(None, None)
try: pub.publish()
pub.publish() doctree = pub.document
doctree = pub.document
except UnicodeError, err:
raise SphinxError(str(err))
# post-processing # post-processing
self.filter_messages(doctree) self.filter_messages(doctree)