shithub: pokecrystal

Download patch

ref: db5208b41f8a505f68ddbccb34dca206df9ca77e
parent: 00a2e4e1192513885f9a6e2e77bb78d2bcb1f53c
author: Bryan Bishop <[email protected]>
date: Sun Jan 27 12:13:18 EST 2013

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.

--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -13,6 +13,7 @@
 # for capwords
 import string
 
+# for python2.6
 if not hasattr(json, "dumps"):
     json.dumps = json.write
 
--- a/extras/gbz80disasm.py
+++ b/extras/gbz80disasm.py
@@ -4,10 +4,12 @@
 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 @@
     file_handler.close()
     return rom
 
+spacing = "\t"
+
 temp_opt_table = [
   [ "ADC A", 0x8f, 0 ],
   [ "ADC B", 0x88, 0 ],
@@ -557,7 +561,7 @@
 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