Fix SF bug #622831 (I think): add unicode_whitespace_trans class
attribute, and modify _munge_whitespace() to recognize Unicode strings
and use unicode_whitespace_trans to munge them. Still need to add a
test to make sure I've really fixed the bug.
diff --git a/Lib/textwrap.py b/Lib/textwrap.py
index 2c9592b..fc93b9b 100644
--- a/Lib/textwrap.py
+++ b/Lib/textwrap.py
@@ -51,6 +51,10 @@
whitespace_trans = string.maketrans(string.whitespace,
' ' * len(string.whitespace))
+ unicode_whitespace_trans = {}
+ for c in string.whitespace:
+ unicode_whitespace_trans[ord(unicode(c))] = ord(u' ')
+
# This funky little regex is just the trick for splitting
# text up into word-wrappable chunks. E.g.
# "Hello there -- you goof-ball, use the -b option!"
@@ -99,7 +103,10 @@
if self.expand_tabs:
text = text.expandtabs()
if self.replace_whitespace:
- text = text.translate(self.whitespace_trans)
+ if isinstance(text, str):
+ text = text.translate(self.whitespace_trans)
+ elif isinstance(text, unicode):
+ text = text.translate(self.unicode_whitespace_trans)
return text