diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2001-06-27 22:00:55 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2001-06-27 22:00:55 (GMT) |
commit | bc7c8960e0afe272a89b37607664819599e5572e (patch) | |
tree | a0412716365772d5e9e95b15efc88ea084957f8d /Mac/Modules/cf/cfscan.py | |
parent | 4f0f1584fb87aff70786fa479ed8ba1b7342dab8 (diff) | |
download | cpython-bc7c8960e0afe272a89b37607664819599e5572e.zip cpython-bc7c8960e0afe272a89b37607664819599e5572e.tar.gz cpython-bc7c8960e0afe272a89b37607664819599e5572e.tar.bz2 |
CFArray, CFData and CFDictonary are now covered, but mainly opaque.
CFStrings are in better shape, but Unicode support and automatic conversion to/from Python strings remains to be done.
Diffstat (limited to 'Mac/Modules/cf/cfscan.py')
-rw-r--r-- | Mac/Modules/cf/cfscan.py | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/Mac/Modules/cf/cfscan.py b/Mac/Modules/cf/cfscan.py index 776af5b..a4dab2d 100644 --- a/Mac/Modules/cf/cfscan.py +++ b/Mac/Modules/cf/cfscan.py @@ -9,24 +9,30 @@ from bgenlocations import TOOLBOXDIR LONG = "CoreFoundation" SHORT = "cf" -OBJECTS = ("CFTypeRef", "CFStringRef") +OBJECTS = ("CFTypeRef", + "CFArrayRef", "CFMutableArrayRef", + "CFDataRef", "CFMutableDataRef", + "CFDictionaryRef", "CFMutableDictionaryRef", + "CFStringRef", "CFMutableStringRef", + ) +# ADD object typenames here def main(): input = [ "CFBase.h", -### "CFArray.h", + "CFArray.h", ## "CFBag.h", ## "CFBundle.h", ## "CFCharacterSet.h", -### "CFData.h", + "CFData.h", ## "CFDate.h", -### "CFDictionary.h", + "CFDictionary.h", ## "CFNumber.h", ## "CFPlugIn.h", ## "CFPreferences.h", ## "CFPropertyList.h", ## "CFSet.h", -### "CFString.h", + "CFString.h", ## "CFStringEncodingExt.h", ## "CFTimeZone.h", ## "CFURL.h", @@ -65,6 +71,17 @@ class MyScanner(Scanner_OSX): "CFAllocatorReallocate", "CFAllocatorDeallocate", "CFGetAllocator", + # Array functions we skip for now. + "CFArrayGetValueAtIndex", + # Data pointer functions. Skip for now. + "CFDataGetBytePtr", + "CFDataGetMutableBytePtr", + "CFDataGetBytes", # XXXX Should support this one + # String functions + "CFStringGetPascalString", # Use the C-string methods. + "CFStringGetPascalStringPtr", # TBD automatically + "CFStringGetCStringPtr", + "CFStringGetCharactersPtr", ] def makegreylist(self): @@ -72,11 +89,25 @@ class MyScanner(Scanner_OSX): def makeblacklisttypes(self): return [ - "CFAllocatorContext", + "CFComparatorFunction", # Callback function pointer + "CFAllocatorContext", # Not interested in providing our own allocator + "void_ptr_ptr", # Tricky. This is the initializer for arrays... + "void_ptr", # Ditto for various array lookup methods + "CFArrayApplierFunction", # Callback function pointer + "CFDictionaryApplierFunction", # Callback function pointer + "UniChar_ptr", # XXXX To be done + "const_UniChar_ptr", # XXXX To be done + "UniChar", # XXXX To be done + "va_list", # For printf-to-a-cfstring. Use Python. + "const_CFStringEncoding_ptr", # To be done, I guess ] def makerepairinstructions(self): return [ + ([("UInt8_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")], + [("UcharInBuffer", "*", "*")]), + ([("const_char_ptr", "*", "ReturnMode")], + [("return_stringptr", "*", "*")]), ] if __name__ == "__main__": |