elog_process: fix ridicoulus newlines bug #386771
authorZac Medico <zmedico@gentoo.org>
Tue, 11 Oct 2011 16:56:43 +0000 (09:56 -0700)
committerZac Medico <zmedico@gentoo.org>
Tue, 11 Oct 2011 16:56:43 +0000 (09:56 -0700)
This fixes a regression since commit 8a119ea94ecc6668797e3a1358465ef3733f3a3e
which added a newline after each character. This boosts efficiency since we no
longer convert a strings to lists of characters.

pym/portage/elog/__init__.py

index eeb6e7184b1e6aadfc024ae4c5478e7771ddc985..33dac178d9d4b5ca54482654330780a7bb5e1f2c 100644 (file)
@@ -1,7 +1,11 @@
 # elog/__init__.py - elog core functions
-# Copyright 2006-2009 Gentoo Foundation
+# Copyright 2006-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
+import sys
+if sys.hexversion >= 0x3000000:
+       basestring = str
+
 import portage
 portage.proxy.lazyimport.lazyimport(globals(),
        'portage.util:writemsg',
@@ -53,9 +57,13 @@ def _combine_logentries(logentries):
                        if previous_type != msgtype:
                                previous_type = msgtype
                                rValue.append("%s: %s" % (msgtype, phase))
-                       for line in msgcontent:
-                               rValue.append(line.rstrip("\n"))
-                       rValue.append("")
+                       if isinstance(msgcontent, basestring):
+                               rValue.append(msgcontent.rstrip("\n"))
+                       else:
+                               for line in msgcontent:
+                                       rValue.append(line.rstrip("\n"))
+       if rValue:
+               rValue.append("")
        return "\n".join(rValue)
 
 _elog_mod_imports = {}