]> granicus.if.org Git - python/commitdiff
Fix SF bug #622831 (I think): add unicode_whitespace_trans class
authorGreg Ward <gward@python.net>
Mon, 9 Dec 2002 16:23:08 +0000 (16:23 +0000)
committerGreg Ward <gward@python.net>
Mon, 9 Dec 2002 16:23:08 +0000 (16:23 +0000)
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.

Lib/textwrap.py

index 2c9592b6dea996b389eff714bafdff2edb01d28f..fc93b9b0afddd782d42c51034fc521735fae854f 100644 (file)
@@ -51,6 +51,10 @@ class TextWrapper:
     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 @@ class TextWrapper:
         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