Bug #296641 - Avoid UnicodeEncodeError with python2 in eapi_is_supported()
authorZac Medico <zmedico@gentoo.org>
Sat, 12 Dec 2009 18:56:35 +0000 (18:56 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 12 Dec 2009 18:56:35 +0000 (18:56 -0000)
triggered by corrupt EAPI.

svn path=/main/trunk/; revision=15055

pym/portage/__init__.py

index 69533c7c039d864c87c9e08e21ce3b30067942f8..0e26acbc8564d6ded345d48bb09e134ecb2de78b 100644 (file)
@@ -6080,7 +6080,11 @@ def _eapi_is_deprecated(eapi):
        return eapi in _deprecated_eapis
 
 def eapi_is_supported(eapi):
-       eapi = str(eapi).strip()
+       if not isinstance(eapi, basestring):
+               # Only call str() when necessary since with python2 it
+               # can trigger UnicodeEncodeError if EAPI is corrupt.
+               eapi = str(eapi)
+       eapi = eapi.strip()
 
        if _eapi_is_deprecated(eapi):
                return True