diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2000-08-20 19:42:52 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2000-08-20 19:42:52 (GMT) |
commit | 2eda24475c46448b8eab09509fc921b31f87cc13 (patch) | |
tree | 45db9c0eec56f494642c8aef4b524963a187ebb4 /Mac | |
parent | 12b2b76608e7551e3b5ce5c5db98d0b59ff75056 (diff) | |
download | cpython-2eda24475c46448b8eab09509fc921b31f87cc13.zip cpython-2eda24475c46448b8eab09509fc921b31f87cc13.tar.gz cpython-2eda24475c46448b8eab09509fc921b31f87cc13.tar.bz2 |
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).
Diffstat (limited to 'Mac')
-rw-r--r-- | Mac/Lib/lib-toolbox/aetools.py | 7 | ||||
-rw-r--r-- | Mac/scripts/gensuitemodule.py | 9 |
2 files changed, 10 insertions, 6 deletions
diff --git a/Mac/Lib/lib-toolbox/aetools.py b/Mac/Lib/lib-toolbox/aetools.py index 792cb72..42b6b76 100644 --- a/Mac/Lib/lib-toolbox/aetools.py +++ b/Mac/Lib/lib-toolbox/aetools.py @@ -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__'): diff --git a/Mac/scripts/gensuitemodule.py b/Mac/scripts/gensuitemodule.py index df1e455..8059cc7 100644 --- a/Mac/scripts/gensuitemodule.py +++ b/Mac/scripts/gensuitemodule.py @@ -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: |