Fix decodeint() for py3k compat, since bytes are a sequence of integers
authorZac Medico <zmedico@gentoo.org>
Mon, 21 Sep 2009 19:51:02 +0000 (19:51 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 21 Sep 2009 19:51:02 +0000 (19:51 -0000)
instead of characters.

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

pym/portage/xpak.py

index b5878befb5c14194a9d719fda315aafc5594432e..8838891caa089a504ffac8c9373bbf7bf7f6a803 100644 (file)
@@ -19,6 +19,7 @@
 import array
 import errno
 import shutil
+import sys
 
 from portage import os
 from portage import normalize_path
@@ -65,11 +66,13 @@ def encodeint(myint):
 def decodeint(mystring):
        """Takes a 4 byte string and converts it into a 4 byte integer.
        Returns an integer."""
-       myint=0
-       myint=myint+ord(mystring[3])
-       myint=myint+(ord(mystring[2]) << 8)
-       myint=myint+(ord(mystring[1]) << 16)
-       myint=myint+(ord(mystring[0]) << 24)
+       if sys.hexversion < 0x3000000:
+               mystring = [ord(x) for x in mystring]
+       myint = 0
+       myint += mystring[3]
+       myint += mystring[2] << 8
+       myint += mystring[1] << 16
+       myint += mystring[0] << 24
        return myint
 
 def xpak(rootdir,outfile=None):