diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/res/resscan.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/res/resscan.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,83 @@ +# Scan Resources.h header file, generate resgen.py and Resources.py files. +# Then run ressupport to generate Resmodule.c. +# (Should learn how to tell the compiler to compile it as well.) + +import sys +import MacOS + +from bgenlocations import TOOLBOXDIR, BGENDIR +sys.path.append(BGENDIR) + +from scantools import Scanner + +def main(): + input = "Resources.h" + output = "resgen.py" + defsoutput = TOOLBOXDIR + "Resources.py" + scanner = ResourcesScanner(input, output, defsoutput) + scanner.scan() + scanner.close() + print "=== Testing definitions output code ===" + execfile(defsoutput, {}, {}) + print "=== Done scanning and generating, now doing 'import ressupport' ===" + import ressupport + print "=== Done 'import ressupport'. It's up to you to compile Resmodule.c ===" + +class ResourcesScanner(Scanner): + + def destination(self, type, name, arglist): + classname = "ResFunction" + listname = "functions" + if arglist: + t, n, m = arglist[0] + if t == "Handle" and m == "InMode": + classname = "ResMethod" + listname = "resmethods" + return classname, listname + + def makeblacklistnames(self): + return [ + "ReadPartialResource", + "WritePartialResource", + "TempInsertROMMap", +## "RmveResource", # RemoveResource +## "SizeResource", # GetResourceSizeOnDisk +## "MaxSizeRsrc", # GetMaxResourceSize + # OS8 only + 'RGetResource', + 'OpenResFile', + 'CreateResFile', + 'RsrcZoneInit', + 'InitResources', + 'RsrcMapEntry', + ] + + def makeblacklisttypes(self): + return [ + ] + + def makerepairinstructions(self): + return [ + ([("Str255", "*", "InMode")], + [("*", "*", "OutMode")]), + + ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")], + [("InBuffer", "*", "*")]), + + ([("void", "*", "OutMode"), ("long", "*", "InMode")], + [("InOutBuffer", "*", "*")]), + + ([("void", "*", "OutMode"), ("long", "*", "InMode"), + ("long", "*", "OutMode")], + [("OutBuffer", "*", "InOutMode")]), + + ([("SInt8", "*", "*")], + [("SignedByte", "*", "*")]), + + + ([("UniCharCount", "*", "InMode"), ("UniChar_ptr", "*", "InMode")], + [("UnicodeReverseInBuffer", "*", "*")]), + ] + +if __name__ == "__main__": + main()