ui: guard against UnicodeDecodeErrors in ui.wrap

This commit is contained in:
Martin Geisler 2009-09-29 01:08:18 +02:00
parent 72cc7c5356
commit 3e05f2c2a8

View File

@ -1278,9 +1278,12 @@ def wrap(line, hangindent, width=78):
padding = '\n' + ' ' * hangindent
# To avoid corrupting multi-byte characters in line, we must wrap
# a Unicode string instead of a bytestring.
try:
u = line.decode(encoding.encoding)
w = padding.join(textwrap.wrap(u, width=width - hangindent))
return w.encode(encoding.encoding)
except UnicodeDecodeError:
return padding.join(textwrap.wrap(line, width=width - hangindent))
def iterlines(iterator):
for chunk in iterator: