Commit c8dc239f authored by Jack Jansen's avatar Jack Jansen

Return preferences of unknown type as opaque data

parent 1754cdee
...@@ -28,13 +28,24 @@ icReadOnlyPerm = 1 ...@@ -28,13 +28,24 @@ icReadOnlyPerm = 1
icReadWritePerm = 2 icReadWritePerm = 2
# End of ictypes.h # 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): def _decode_default(data, key):
if len(data) == 0: if len(data) == 0:
return data return data
if ord(data[0]) == len(data)-1: if ord(data[0]) == len(data)-1:
# Assume Pstring # Assume Pstring
return data[1:] return data[1:]
raise error, "Unknown data format for key "+key return ICOpaqueData(data)
def _decode_multistr(data, key): def _decode_multistr(data, key):
numstr = ord(data[0]) << 8 | ord(data[1]) numstr = ord(data[0]) << 8 | ord(data[1])
...@@ -134,6 +145,8 @@ def _decode(data, key): ...@@ -134,6 +145,8 @@ def _decode(data, key):
return decoder(data, key) return decoder(data, key)
def _code(data, key): def _code(data, key):
if type(data) == _ICOpaqueDataType:
return data.data
if '\245' in key: if '\245' in key:
key2 = key[:string.index(key, '\245')+1] key2 = key[:string.index(key, '\245')+1]
else: else:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment