summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Mac/Lib/ic.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/Mac/Lib/ic.py b/Mac/Lib/ic.py
index 9089f52..6388de5 100644
--- a/Mac/Lib/ic.py
+++ b/Mac/Lib/ic.py
@@ -28,13 +28,24 @@ icReadOnlyPerm = 1
icReadWritePerm = 2
# End of ictypes.h
+class ICOpaqueData:
+ """An unparseable IC entry"""
+ def __init__(self, data):
+ self.data = data
+
+ def __repr__(self):
+ return "ICOpaqueData(%s)"%`self.data`
+
+_ICOpaqueDataType=type(ICOpaqueData(''))
+
def _decode_default(data, key):
if len(data) == 0:
return data
if ord(data[0]) == len(data)-1:
# Assume Pstring
return data[1:]
- raise error, "Unknown data format for key "+key
+ return ICOpaqueData(data)
+
def _decode_multistr(data, key):
numstr = ord(data[0]) << 8 | ord(data[1])
@@ -134,6 +145,8 @@ def _decode(data, key):
return decoder(data, key)
def _code(data, key):
+ if type(data) == _ICOpaqueDataType:
+ return data.data
if '\245' in key:
key2 = key[:string.index(key, '\245')+1]
else: