Commit 2eda2447 authored by Jack Jansen's avatar Jack Jansen

Enums we cannot find are set to None, and enumsubst understands this (no...

Enums we cannot find are set to None, and enumsubst understands this (no substitution done). This is need for what I think are bugs in the Finder aete resources (some events use unknown enums).
parent 12b2b766
......@@ -103,7 +103,7 @@ def keysubst(arguments, keydict):
def enumsubst(arguments, key, edict):
"""Substitute a single enum keyword argument, if it occurs"""
if not arguments.has_key(key):
if not arguments.has_key(key) or edict is None:
return
v = arguments[key]
ok = edict.values()
......@@ -129,8 +129,9 @@ def decodeerror(arguments):
class TalkTo:
"""An AE connection to an application"""
_signature = None # Can be overridden by subclasses
def __init__(self, signature, start=0, timeout=0):
def __init__(self, signature=None, start=0, timeout=0):
"""Create a communication channel with a particular application.
Addressing the application is done by specifying either a
......@@ -138,6 +139,8 @@ class TalkTo:
to an AEDesc.
"""
self.target_signature = None
if signature is None:
signature = self._signature
if type(signature) == AEDescType:
self.target = signature
elif type(signature) == InstanceType and hasattr(signature, '__aepack__'):
......
......@@ -667,16 +667,17 @@ class ObjectCompiler:
return
pname = identify(name)
if self.namemappers[0].hascode('property', code):
# XXXX Why don't we handle these the same as classes??
# plural forms and such
othername, dummy, dummy = self.namemappers[0].findcodename('property', code)
if self.fp:
self.fp.write("# repeated property %s %s\n"%(pname, what[1]))
self.fp.write("\n%s = %s\n"%(pname, othername))
else:
if self.fp:
self.fp.write("class %s(aetools.NProperty):\n" % pname)
self.fp.write('\t"""%s - %s """\n' % (name, what[1]))
self.fp.write("\twhich = %s\n" % `code`)
self.fp.write("\twant = %s\n" % `what[0]`)
self.namemappers[0].addnamecode('property', pname, code)
self.namemappers[0].addnamecode('property', pname, code)
def compileelement(self, elem):
[code, keyform] = elem
......@@ -747,7 +748,7 @@ class ObjectCompiler:
name, fullname, module = self.findcodename('enum', enum)
if not name:
if self.fp:
self.fp.write("# XXXX enum %s not found!!\n"%(enum))
self.fp.write("_Enum_%s = None # XXXX enum %s not found!!\n"%(identify(enum), enum))
return
if module:
if self.fp:
......
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