]> granicus.if.org Git - python/commitdiff
SF #1637850: make_table in difflib did not work with unicode
authorRaymond Hettinger <python@rcn.com>
Thu, 8 Mar 2007 21:30:55 +0000 (21:30 +0000)
committerRaymond Hettinger <python@rcn.com>
Thu, 8 Mar 2007 21:30:55 +0000 (21:30 +0000)
Lib/difflib.py
Misc/NEWS

index d1c29318a6d92c09f8505b3323cf4020e686bf9d..9be6ca7242f18e988dd851e356da75a08b36c8cc 100644 (file)
@@ -1945,8 +1945,7 @@ class HtmlDiff(object):
         fromlist,tolist,flaglist,next_href,next_id = self._convert_flags(
             fromlist,tolist,flaglist,context,numlines)
 
-        import cStringIO
-        s = cStringIO.StringIO()
+        s = []
         fmt = '            <tr><td class="diff_next"%s>%s</td>%s' + \
               '<td class="diff_next">%s</td>%s</tr>\n'
         for i in range(len(flaglist)):
@@ -1954,9 +1953,9 @@ class HtmlDiff(object):
                 # mdiff yields None on separator lines skip the bogus ones
                 # generated for the first line
                 if i > 0:
-                    s.write('        </tbody>        \n        <tbody>\n')
+                    s.append('        </tbody>        \n        <tbody>\n')
             else:
-                s.write( fmt % (next_id[i],next_href[i],fromlist[i],
+                s.append( fmt % (next_id[i],next_href[i],fromlist[i],
                                            next_href[i],tolist[i]))
         if fromdesc or todesc:
             header_row = '<thead><tr>%s%s%s%s</tr></thead>' % (
@@ -1968,7 +1967,7 @@ class HtmlDiff(object):
             header_row = ''
 
         table = self._table_template % dict(
-            data_rows=s.getvalue(),
+            data_rows=''.join(s),
             header_row=header_row,
             prefix=self._prefix[1])
 
index 4eb4020be91875f832bf71316d99bc983809ea7b..1ea491600bd948ceb6e14238dd7bc7e094ea787a 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -197,6 +197,8 @@ Extension Modules
 Library
 -------
 
+- Bug #1637850:  make_table in difflib did not work with unicode
+
 - Bugs #1676321:  the empty() function in sched.py returned the wrong result
 
 - unittest now verifies more of its assumptions. In particular, TestCase