Fix #767: safely encode SphinxErrors when printing to sys.stderr.

This commit is contained in:
Georg Brandl
2011-09-21 10:47:18 +02:00
parent 3b43bd5182
commit 19775589e9

View File

@@ -209,7 +209,7 @@ def main(argv):
print >>error, err.args[0].encode('ascii', 'backslashreplace') print >>error, err.args[0].encode('ascii', 'backslashreplace')
elif isinstance(err, SphinxError): elif isinstance(err, SphinxError):
print >>error, red('%s:' % err.category) print >>error, red('%s:' % err.category)
print >>error, err print >>error, unicode(err).encode('ascii', 'backslashreplace')
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()