Return preferences of unknown type as opaque data
This commit is contained in:
parent
466be801fd
commit
8dc797d1f8
|
@ -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):
|
||||||
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:
|
||||||
|
|
Loading…
Reference in New Issue