annotate Mac/Modules/cf/cfscan.py @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents 1d84bf5f9478
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 # Scan an Apple header file, generating a Python file of generator calls.
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 import sys
24576
3e718c3d51ef Enable building of Carbon toolbox modules with unix-Python.
Jack Jansen <jack.jansen@cwi.nl>
parents: 23438
diff changeset
4 from bgenlocations import TOOLBOXDIR, BGENDIR
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5 sys.path.append(BGENDIR)
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6 from scantools import Scanner_OSX
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 LONG = "CoreFoundation"
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 SHORT = "cf"
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
10 OBJECTS = ("CFTypeRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
11 "CFArrayRef", "CFMutableArrayRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
12 "CFDataRef", "CFMutableDataRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
13 "CFDictionaryRef", "CFMutableDictionaryRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
14 "CFStringRef", "CFMutableStringRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
15 "CFURLRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
16 ## "CFPropertyListRef",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
17 )
18331
bf936c529635 CFArray, CFData and CFDictonary are now covered, but mainly opaque.
Jack Jansen <jack.jansen@cwi.nl>
parents: 18289
diff changeset
18 # ADD object typenames here
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 def main():
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
21 input = [
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
22 "CFBase.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
23 "CFArray.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
24 ## "CFBag.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
25 ## "CFBundle.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
26 ## "CFCharacterSet.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
27 "CFData.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
28 ## "CFDate.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
29 "CFDictionary.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
30 ## "CFNumber.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
31 ## "CFPlugIn.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
32 "CFPreferences.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
33 "CFPropertyList.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
34 ## "CFSet.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
35 "CFString.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
36 ## "CFStringEncodingExt.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
37 ## "CFTimeZone.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
38 "CFURL.h",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
39 ]
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
40 output = SHORT + "gen.py"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
41 defsoutput = TOOLBOXDIR + LONG + ".py"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
42 scanner = MyScanner(input, output, defsoutput)
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
43 scanner.scan()
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
44 scanner.gentypetest(SHORT+"typetest.py")
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
45 scanner.close()
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
46 print "=== Testing definitions output code ==="
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
47 execfile(defsoutput, {}, {})
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
48 print "=== Done scanning and generating, now importing the generated code... ==="
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
49 exec "import " + SHORT + "support"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
50 print "=== Done. It's up to you to compile it now! ==="
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
51
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
52 class MyScanner(Scanner_OSX):
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
53
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
54 def destination(self, type, name, arglist):
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
55 classname = "Function"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
56 listname = "functions"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
57 if arglist and name[:13] != 'CFPreferences':
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
58 t, n, m = arglist[0]
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
59 if t in OBJECTS and m == "InMode":
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
60 classname = "Method"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
61 listname = t + "_methods"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
62 # Special case for the silly first AllocatorRef argument
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
63 if t == 'CFAllocatorRef' and m == 'InMode' and len(arglist) > 1:
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
64 t, n, m = arglist[1]
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
65 if t in OBJECTS and m == "InMode":
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
66 classname = "MethodSkipArg1"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
67 listname = t + "_methods"
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
68 return classname, listname
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
69
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
70 def writeinitialdefs(self):
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
71 self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
72
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
73 def makeblacklistnames(self):
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
74 return [
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
75 # Memory allocator functions
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
76 "CFAllocatorGetDefault",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
77 "CFAllocatorSetDefault",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
78 "CFAllocatorAllocate",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
79 "CFAllocatorReallocate",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
80 "CFAllocatorDeallocate",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
81 "CFGetAllocator",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
82 # Array functions we skip for now.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
83 "CFArrayGetValueAtIndex",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
84 # Data pointer functions. Skip for now.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
85 "CFDataGetBytePtr",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
86 "CFDataGetMutableBytePtr",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
87 "CFDataGetBytes", # XXXX Should support this one
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
88 # String functions
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
89 "CFStringGetPascalString", # Use the C-string methods.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
90 "CFStringGetPascalStringPtr", # TBD automatically
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
91 "CFStringGetCStringPtr",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
92 "CFStringGetCharactersPtr",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
93 "CFStringGetCString",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
94 "CFStringGetCharacters",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
95 "CFURLCreateStringWithFileSystemPath", # Gone in later releases
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
96 "CFStringCreateMutableWithExternalCharactersNoCopy", # Not a clue...
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
97 "CFStringSetExternalCharactersNoCopy",
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
98 "CFStringGetCharacterAtIndex", # No format for single unichars yet.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
99 "kCFStringEncodingInvalidId", # incompatible constant declaration
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
100 "CFPropertyListCreateFromXMLData", # Manually generated
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
101 ]
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
102
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
103 def makegreylist(self):
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
104 return []
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
105
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
106 def makeblacklisttypes(self):
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
107 return [
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
108 "CFComparatorFunction", # Callback function pointer
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
109 "CFAllocatorContext", # Not interested in providing our own allocator
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
110 "void_ptr_ptr", # Tricky. This is the initializer for arrays...
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
111 "void_ptr", # Ditto for various array lookup methods
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
112 "CFArrayApplierFunction", # Callback function pointer
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
113 "CFDictionaryApplierFunction", # Callback function pointer
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
114 "va_list", # For printf-to-a-cfstring. Use Python.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
115 "const_CFStringEncoding_ptr", # To be done, I guess
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
116 ]
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
117
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
118 def makerepairinstructions(self):
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
119 return [
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
120 # Buffers in CF seem to be passed as UInt8 * normally.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
121 ([("UInt8_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")],
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
122 [("UcharInBuffer", "*", "*")]),
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
123
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
124 ([("UniChar_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")],
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
125 [("UnicodeInBuffer", "*", "*")]),
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
126
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
127 # Some functions return a const char *. Don't worry, we won't modify it.
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
128 ([("const_char_ptr", "*", "ReturnMode")],
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
129 [("return_stringptr", "*", "*")]),
21614
095cff21956c Added some support for unicode arguments.
Jack Jansen <jack.jansen@cwi.nl>
parents: 18677
diff changeset
130
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
131 # base URLs are optional (pass None for NULL)
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
132 ([("CFURLRef", "baseURL", "InMode")],
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
133 [("OptionalCFURLRef", "*", "*")]),
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
134
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
135 # We handle CFPropertyListRef objects as plain CFTypeRef
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
136 ([("CFPropertyListRef", "*", "*")],
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
137 [("CFTypeRef", "*", "*")]),
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
138 ]
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
139
18289
4fa31eca3be4 First small step towards bgen-generated CoreFoundation. there is hardly any real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
140 if __name__ == "__main__":
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 24849
diff changeset
141 main()