From db5208b41f8a505f68ddbccb34dca206df9ca77e Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Sun, 27 Jan 2013 17:13:18 -0600 Subject: [PATCH] make gbz80disasm work with python2.6 again There was an incompatible change to the json module api between py26 and py27, causing gbz80disasm to not work with py26. The fix is to simply alias the new loads method to the old read function. A possibly better plan might be to not support py26 at all. --- extras/crystal.py | 1 + extras/gbz80disasm.py | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/extras/crystal.py b/extras/crystal.py index 4353ad560..6c70f642c 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -13,6 +13,7 @@ import random # for capwords import string +# for python2.6 if not hasattr(json, "dumps"): json.dumps = json.write diff --git a/extras/gbz80disasm.py b/extras/gbz80disasm.py index aab39dbff..f2ba4839f 100644 --- a/extras/gbz80disasm.py +++ b/extras/gbz80disasm.py @@ -4,10 +4,12 @@ import os import sys from copy import copy, deepcopy from ctypes import c_int8 -import json import random +import json -spacing = "\t" +# New versions of json don't have read anymore. +if not hasattr(json, "read"): + json.read = json.loads from romstr import RomStr @@ -19,6 +21,8 @@ def load_rom(filename="../baserom.gbc"): file_handler.close() return rom +spacing = "\t" + temp_opt_table = [ [ "ADC A", 0x8f, 0 ], [ "ADC B", 0x88, 0 ], @@ -557,7 +561,7 @@ all_labels = {} def load_labels(filename="labels.json"): global all_labels if os.path.exists(filename): - all_labels = json.loads(open(filename, "r").read()) + all_labels = json.read(open(filename, "r").read()) else: print "You must run crystal.scan_for_predefined_labels() to create \"labels.json\". Trying..." import crystal