templater: remove cStringIO from stringify
authorMatt Mackall <mpm@selenic.com>
Mon, 13 Nov 2006 13:26:57 -0600
changeset 3634 6a46c9ccc2ed
parent 3633 bf3dec184c78
child 3635 7af1f54c044c
templater: remove cStringIO from stringify
mercurial/templater.py
--- a/mercurial/templater.py	Mon Nov 13 13:26:57 2006 -0600
+++ b/mercurial/templater.py	Mon Nov 13 13:26:57 2006 -0600
@@ -172,15 +172,14 @@
 
 def stringify(thing):
     '''turn nested template iterator into string.'''
-    cs = cStringIO.StringIO()
-    def walk(things):
-        for t in things:
-            if hasattr(t, '__iter__'):
-                walk(t)
-            else:
-                cs.write(t)
-    walk(thing)
-    return cs.getvalue()
+    def flatten(thing):
+        if hasattr(thing, '__iter__'):
+            for t in thing:
+                for i in flatten(t):
+                    yield i
+        else:
+            yield str(thing)
+    return "".join(flatten(thing))
 
 para_re = None
 space_re = None