From c437c5d14c46d7c2cce831159ae23645f5a5329c Mon Sep 17 00:00:00 2001 From: anthraxx Date: Wed, 1 Jun 2016 11:57:36 +0200 Subject: [PATCH] python2/3 cross compatibility --- python/distorm3/__init__.py | 9 ++++++--- setup.py | 8 +++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/python/distorm3/__init__.py b/python/distorm3/__init__.py index 149058c..abc9d5f 100644 --- a/python/distorm3/__init__.py +++ b/python/distorm3/__init__.py @@ -30,6 +30,9 @@ from os import name as os_name import sys +if sys.version_info[0] >= 3: + xrange = range + #============================================================================== # Load the diStorm DLL @@ -550,8 +553,8 @@ def DecodeGenerator(codeOffset, code, dt): di = result[index] asm = di.mnemonic.p if len(di.operands.p): - asm += " " + di.operands.p - pydi = (di.offset, di.size, asm, di.instructionHex.p) + asm += b" " + di.operands.p + pydi = (di.offset, di.size, asm.decode(), di.instructionHex.p.decode()) instruction_off += di.size yield pydi @@ -677,7 +680,7 @@ def _getFC(metaflags): try: return FlowControlFlags[realvalue] except IndexError: - print ("Bad meta-flags: %d", realvalue) + print ("Bad meta-flags: {}".format(realvalue)) raise def _getMnem(opcode): diff --git a/setup.py b/setup.py index b5f86ee..8fdc2bf 100644 --- a/setup.py +++ b/setup.py @@ -26,8 +26,6 @@ from distutils.core import setup, Extension from distutils.errors import DistutilsSetupError -from types import ListType, StringType, TupleType - from shutil import ignore_patterns def get_sources(): @@ -70,7 +68,7 @@ def finalize_options (self): if self.include_dirs is None: self.include_dirs = self.distribution.include_dirs or [] - if type(self.include_dirs) is StringType: + if type(self.include_dirs) in (bytes, str): self.include_dirs = string.split(self.include_dirs, os.pathsep) @@ -78,8 +76,8 @@ def get_source_files_for_lib(self, lib_name, build_info): sources = build_info.get('sources', []) if callable(sources): sources = sources() - if (sources is None or - type(sources) not in (ListType, TupleType) or + if (sources is None or + type(sources) not in (list, tuple) or len(sources) == 0): raise DistutilsSetupError ("in 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames") % lib_name return sources