Whitespace normalization, via reindent.py.
diff --git a/Mac/Modules/cf/cfscan.py b/Mac/Modules/cf/cfscan.py
index aa0ea3d..d2de92e 100644
--- a/Mac/Modules/cf/cfscan.py
+++ b/Mac/Modules/cf/cfscan.py
@@ -8,135 +8,135 @@
LONG = "CoreFoundation"
SHORT = "cf"
-OBJECTS = ("CFTypeRef",
- "CFArrayRef", "CFMutableArrayRef",
- "CFDataRef", "CFMutableDataRef",
- "CFDictionaryRef", "CFMutableDictionaryRef",
- "CFStringRef", "CFMutableStringRef",
- "CFURLRef",
-## "CFPropertyListRef",
- )
+OBJECTS = ("CFTypeRef",
+ "CFArrayRef", "CFMutableArrayRef",
+ "CFDataRef", "CFMutableDataRef",
+ "CFDictionaryRef", "CFMutableDictionaryRef",
+ "CFStringRef", "CFMutableStringRef",
+ "CFURLRef",
+## "CFPropertyListRef",
+ )
# ADD object typenames here
def main():
- input = [
- "CFBase.h",
- "CFArray.h",
-## "CFBag.h",
-## "CFBundle.h",
-## "CFCharacterSet.h",
- "CFData.h",
-## "CFDate.h",
- "CFDictionary.h",
-## "CFNumber.h",
-## "CFPlugIn.h",
- "CFPreferences.h",
- "CFPropertyList.h",
-## "CFSet.h",
- "CFString.h",
-## "CFStringEncodingExt.h",
-## "CFTimeZone.h",
- "CFURL.h",
- ]
- output = SHORT + "gen.py"
- defsoutput = TOOLBOXDIR + LONG + ".py"
- scanner = MyScanner(input, output, defsoutput)
- scanner.scan()
- scanner.gentypetest(SHORT+"typetest.py")
- scanner.close()
- print "=== Testing definitions output code ==="
- execfile(defsoutput, {}, {})
- print "=== Done scanning and generating, now importing the generated code... ==="
- exec "import " + SHORT + "support"
- print "=== Done. It's up to you to compile it now! ==="
+ input = [
+ "CFBase.h",
+ "CFArray.h",
+## "CFBag.h",
+## "CFBundle.h",
+## "CFCharacterSet.h",
+ "CFData.h",
+## "CFDate.h",
+ "CFDictionary.h",
+## "CFNumber.h",
+## "CFPlugIn.h",
+ "CFPreferences.h",
+ "CFPropertyList.h",
+## "CFSet.h",
+ "CFString.h",
+## "CFStringEncodingExt.h",
+## "CFTimeZone.h",
+ "CFURL.h",
+ ]
+ output = SHORT + "gen.py"
+ defsoutput = TOOLBOXDIR + LONG + ".py"
+ scanner = MyScanner(input, output, defsoutput)
+ scanner.scan()
+ scanner.gentypetest(SHORT+"typetest.py")
+ scanner.close()
+ print "=== Testing definitions output code ==="
+ execfile(defsoutput, {}, {})
+ print "=== Done scanning and generating, now importing the generated code... ==="
+ exec "import " + SHORT + "support"
+ print "=== Done. It's up to you to compile it now! ==="
class MyScanner(Scanner_OSX):
- def destination(self, type, name, arglist):
- classname = "Function"
- listname = "functions"
- if arglist and name[:13] != 'CFPreferences':
- t, n, m = arglist[0]
- if t in OBJECTS and m == "InMode":
- classname = "Method"
- listname = t + "_methods"
- # Special case for the silly first AllocatorRef argument
- if t == 'CFAllocatorRef' and m == 'InMode' and len(arglist) > 1:
- t, n, m = arglist[1]
- if t in OBJECTS and m == "InMode":
- classname = "MethodSkipArg1"
- listname = t + "_methods"
- return classname, listname
+ def destination(self, type, name, arglist):
+ classname = "Function"
+ listname = "functions"
+ if arglist and name[:13] != 'CFPreferences':
+ t, n, m = arglist[0]
+ if t in OBJECTS and m == "InMode":
+ classname = "Method"
+ listname = t + "_methods"
+ # Special case for the silly first AllocatorRef argument
+ if t == 'CFAllocatorRef' and m == 'InMode' and len(arglist) > 1:
+ t, n, m = arglist[1]
+ if t in OBJECTS and m == "InMode":
+ classname = "MethodSkipArg1"
+ listname = t + "_methods"
+ return classname, listname
- def writeinitialdefs(self):
- self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
+ def writeinitialdefs(self):
+ self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
- def makeblacklistnames(self):
- return [
- # Memory allocator functions
- "CFAllocatorGetDefault",
- "CFAllocatorSetDefault",
- "CFAllocatorAllocate",
- "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",
- "CFStringGetCString",
- "CFStringGetCharacters",
- "CFURLCreateStringWithFileSystemPath", # Gone in later releases
- "CFStringCreateMutableWithExternalCharactersNoCopy", # Not a clue...
- "CFStringSetExternalCharactersNoCopy",
- "CFStringGetCharacterAtIndex", # No format for single unichars yet.
- "kCFStringEncodingInvalidId", # incompatible constant declaration
- "CFPropertyListCreateFromXMLData", # Manually generated
- ]
+ def makeblacklistnames(self):
+ return [
+ # Memory allocator functions
+ "CFAllocatorGetDefault",
+ "CFAllocatorSetDefault",
+ "CFAllocatorAllocate",
+ "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",
+ "CFStringGetCString",
+ "CFStringGetCharacters",
+ "CFURLCreateStringWithFileSystemPath", # Gone in later releases
+ "CFStringCreateMutableWithExternalCharactersNoCopy", # Not a clue...
+ "CFStringSetExternalCharactersNoCopy",
+ "CFStringGetCharacterAtIndex", # No format for single unichars yet.
+ "kCFStringEncodingInvalidId", # incompatible constant declaration
+ "CFPropertyListCreateFromXMLData", # Manually generated
+ ]
- def makegreylist(self):
- return []
+ def makegreylist(self):
+ return []
- def makeblacklisttypes(self):
- return [
- "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
- "va_list", # For printf-to-a-cfstring. Use Python.
- "const_CFStringEncoding_ptr", # To be done, I guess
- ]
+ def makeblacklisttypes(self):
+ return [
+ "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
+ "va_list", # For printf-to-a-cfstring. Use Python.
+ "const_CFStringEncoding_ptr", # To be done, I guess
+ ]
- def makerepairinstructions(self):
- return [
- # Buffers in CF seem to be passed as UInt8 * normally.
- ([("UInt8_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")],
- [("UcharInBuffer", "*", "*")]),
-
- ([("UniChar_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")],
- [("UnicodeInBuffer", "*", "*")]),
+ def makerepairinstructions(self):
+ return [
+ # Buffers in CF seem to be passed as UInt8 * normally.
+ ([("UInt8_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")],
+ [("UcharInBuffer", "*", "*")]),
- # Some functions return a const char *. Don't worry, we won't modify it.
- ([("const_char_ptr", "*", "ReturnMode")],
- [("return_stringptr", "*", "*")]),
-
- # base URLs are optional (pass None for NULL)
- ([("CFURLRef", "baseURL", "InMode")],
- [("OptionalCFURLRef", "*", "*")]),
-
- # We handle CFPropertyListRef objects as plain CFTypeRef
- ([("CFPropertyListRef", "*", "*")],
- [("CFTypeRef", "*", "*")]),
- ]
-
+ ([("UniChar_ptr", "*", "InMode"), ("CFIndex", "*", "InMode")],
+ [("UnicodeInBuffer", "*", "*")]),
+
+ # Some functions return a const char *. Don't worry, we won't modify it.
+ ([("const_char_ptr", "*", "ReturnMode")],
+ [("return_stringptr", "*", "*")]),
+
+ # base URLs are optional (pass None for NULL)
+ ([("CFURLRef", "baseURL", "InMode")],
+ [("OptionalCFURLRef", "*", "*")]),
+
+ # We handle CFPropertyListRef objects as plain CFTypeRef
+ ([("CFPropertyListRef", "*", "*")],
+ [("CFTypeRef", "*", "*")]),
+ ]
+
if __name__ == "__main__":
- main()
+ main()
diff --git a/Mac/Modules/cf/cfsupport.py b/Mac/Modules/cf/cfsupport.py
index 95aeaa7..87b9a6f 100644
--- a/Mac/Modules/cf/cfsupport.py
+++ b/Mac/Modules/cf/cfsupport.py
@@ -8,35 +8,35 @@
import string
# Declarations that change for each manager
-MODNAME = '_CF' # The name of the module
+MODNAME = '_CF' # The name of the module
# The following is *usually* unchanged but may still require tuning
-MODPREFIX = 'CF' # The prefix for module-wide routines
+MODPREFIX = 'CF' # The prefix for module-wide routines
INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c" # The file generated by this program
+OUTPUTFILE = MODNAME + "module.c" # The file generated by this program
from macsupport import *
# Special case generator for the functions that have an AllocatorRef first argument,
# which we skip anyway, and the object as the second arg.
class MethodSkipArg1(MethodGenerator):
- """Similar to MethodGenerator, but has self as last argument"""
+ """Similar to MethodGenerator, but has self as last argument"""
- def parseArgumentList(self, args):
- if len(args) < 2:
- raise ValueError, "MethodSkipArg1 expects at least 2 args"
- a0, a1, args = args[0], args[1], args[2:]
- t0, n0, m0 = a0
- if t0 != "CFAllocatorRef" and m0 != InMode:
- raise ValueError, "MethodSkipArg1 should have dummy AllocatorRef first arg"
- t1, n1, m1 = a1
- if m1 != InMode:
- raise ValueError, "method's 'self' must be 'InMode'"
- dummy = Variable(t0, n0, m0)
- self.argumentList.append(dummy)
- self.itself = Variable(t1, "_self->ob_itself", SelfMode)
- self.argumentList.append(self.itself)
- FunctionGenerator.parseArgumentList(self, args)
+ def parseArgumentList(self, args):
+ if len(args) < 2:
+ raise ValueError, "MethodSkipArg1 expects at least 2 args"
+ a0, a1, args = args[0], args[1], args[2:]
+ t0, n0, m0 = a0
+ if t0 != "CFAllocatorRef" and m0 != InMode:
+ raise ValueError, "MethodSkipArg1 should have dummy AllocatorRef first arg"
+ t1, n1, m1 = a1
+ if m1 != InMode:
+ raise ValueError, "method's 'self' must be 'InMode'"
+ dummy = Variable(t0, n0, m0)
+ self.argumentList.append(dummy)
+ self.itself = Variable(t1, "_self->ob_itself", SelfMode)
+ self.argumentList.append(self.itself)
+ FunctionGenerator.parseArgumentList(self, args)
# Create the type objects
@@ -111,19 +111,19 @@
PyObject *CFRange_New(CFRange *itself)
{
- return Py_BuildValue("ll", (long)itself->location, (long)itself->length);
+ return Py_BuildValue("ll", (long)itself->location, (long)itself->length);
}
int
CFRange_Convert(PyObject *v, CFRange *p_itself)
{
- long location, length;
-
- if( !PyArg_ParseTuple(v, "ll", &location, &length) )
- return 0;
- p_itself->location = (CFIndex)location;
- p_itself->length = (CFIndex)length;
- return 1;
+ long location, length;
+
+ if( !PyArg_ParseTuple(v, "ll", &location, &length) )
+ return 0;
+ p_itself->location = (CFIndex)location;
+ p_itself->length = (CFIndex)length;
+ return 1;
}
/* Optional CFURL argument or None (passed as NULL) */
@@ -131,8 +131,8 @@
OptionalCFURLRefObj_Convert(PyObject *v, CFURLRef *p_itself)
{
if ( v == Py_None ) {
- p_itself = NULL;
- return 1;
+ p_itself = NULL;
+ return 1;
}
return CFURLRefObj_Convert(v, p_itself);
}
@@ -143,42 +143,42 @@
/* Routines to convert any CF type to/from the corresponding CFxxxObj */
PyObject *CFObj_New(CFTypeRef itself)
{
- if (itself == NULL)
- {
- PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
- return NULL;
- }
- if (CFGetTypeID(itself) == CFArrayGetTypeID()) return CFArrayRefObj_New((CFArrayRef)itself);
- if (CFGetTypeID(itself) == CFDictionaryGetTypeID()) return CFDictionaryRefObj_New((CFDictionaryRef)itself);
- if (CFGetTypeID(itself) == CFDataGetTypeID()) return CFDataRefObj_New((CFDataRef)itself);
- if (CFGetTypeID(itself) == CFStringGetTypeID()) return CFStringRefObj_New((CFStringRef)itself);
- if (CFGetTypeID(itself) == CFURLGetTypeID()) return CFURLRefObj_New((CFURLRef)itself);
- /* XXXX Or should we use PyCF_CF2Python here?? */
- return CFTypeRefObj_New(itself);
+ if (itself == NULL)
+ {
+ PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
+ return NULL;
+ }
+ if (CFGetTypeID(itself) == CFArrayGetTypeID()) return CFArrayRefObj_New((CFArrayRef)itself);
+ if (CFGetTypeID(itself) == CFDictionaryGetTypeID()) return CFDictionaryRefObj_New((CFDictionaryRef)itself);
+ if (CFGetTypeID(itself) == CFDataGetTypeID()) return CFDataRefObj_New((CFDataRef)itself);
+ if (CFGetTypeID(itself) == CFStringGetTypeID()) return CFStringRefObj_New((CFStringRef)itself);
+ if (CFGetTypeID(itself) == CFURLGetTypeID()) return CFURLRefObj_New((CFURLRef)itself);
+ /* XXXX Or should we use PyCF_CF2Python here?? */
+ return CFTypeRefObj_New(itself);
}
int CFObj_Convert(PyObject *v, CFTypeRef *p_itself)
{
- if (v == Py_None) { *p_itself = NULL; return 1; }
- /* Check for other CF objects here */
+ if (v == Py_None) { *p_itself = NULL; return 1; }
+ /* Check for other CF objects here */
- if (!CFTypeRefObj_Check(v) &&
- !CFArrayRefObj_Check(v) &&
- !CFMutableArrayRefObj_Check(v) &&
- !CFDictionaryRefObj_Check(v) &&
- !CFMutableDictionaryRefObj_Check(v) &&
- !CFDataRefObj_Check(v) &&
- !CFMutableDataRefObj_Check(v) &&
- !CFStringRefObj_Check(v) &&
- !CFMutableStringRefObj_Check(v) &&
- !CFURLRefObj_Check(v) )
- {
- /* XXXX Or should we use PyCF_Python2CF here?? */
- PyErr_SetString(PyExc_TypeError, "CF object required");
- return 0;
- }
- *p_itself = ((CFTypeRefObject *)v)->ob_itself;
- return 1;
+ if (!CFTypeRefObj_Check(v) &&
+ !CFArrayRefObj_Check(v) &&
+ !CFMutableArrayRefObj_Check(v) &&
+ !CFDictionaryRefObj_Check(v) &&
+ !CFMutableDictionaryRefObj_Check(v) &&
+ !CFDataRefObj_Check(v) &&
+ !CFMutableDataRefObj_Check(v) &&
+ !CFStringRefObj_Check(v) &&
+ !CFMutableStringRefObj_Check(v) &&
+ !CFURLRefObj_Check(v) )
+ {
+ /* XXXX Or should we use PyCF_Python2CF here?? */
+ PyErr_SetString(PyExc_TypeError, "CF object required");
+ return 0;
+ }
+ *p_itself = ((CFTypeRefObject *)v)->ob_itself;
+ return 1;
}
"""
@@ -225,7 +225,7 @@
CFURLPathStyle = Type("CFURLPathStyle", "l") # a bit dangerous, it's an enum
char_ptr = stringptr
-return_stringptr = Type("char *", "s") # ONLY FOR RETURN VALUES!!
+return_stringptr = Type("char *", "s") # ONLY FOR RETURN VALUES!!
CFAllocatorRef = FakeType("(CFAllocatorRef)NULL")
CFArrayCallBacks_ptr = FakeType("&kCFTypeArrayCallBacks")
@@ -251,233 +251,233 @@
# Our (opaque) objects
class MyGlobalObjectDefinition(PEP253Mixin, GlobalObjectDefinition):
- def outputCheckNewArg(self):
- Output('if (itself == NULL)')
- OutLbrace()
- Output('PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");')
- Output('return NULL;')
- OutRbrace()
- def outputStructMembers(self):
- GlobalObjectDefinition.outputStructMembers(self)
- Output("void (*ob_freeit)(CFTypeRef ptr);")
- def outputInitStructMembers(self):
- GlobalObjectDefinition.outputInitStructMembers(self)
-## Output("it->ob_freeit = NULL;")
- Output("it->ob_freeit = CFRelease;")
- def outputCheckConvertArg(self):
- Out("""
- if (v == Py_None) { *p_itself = NULL; return 1; }
- /* Check for other CF objects here */
- """)
- def outputCleanupStructMembers(self):
- Output("if (self->ob_freeit && self->ob_itself)")
- OutLbrace()
- Output("self->ob_freeit((CFTypeRef)self->ob_itself);")
- Output("self->ob_itself = NULL;")
- OutRbrace()
-
- def outputCompare(self):
- Output()
- Output("static int %s_compare(%s *self, %s *other)", self.prefix, self.objecttype, self.objecttype)
- OutLbrace()
- Output("/* XXXX Or should we use CFEqual?? */")
- Output("if ( self->ob_itself > other->ob_itself ) return 1;")
- Output("if ( self->ob_itself < other->ob_itself ) return -1;")
- Output("return 0;")
- OutRbrace()
-
- def outputHash(self):
- Output()
- Output("static int %s_hash(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("/* XXXX Or should we use CFHash?? */")
- Output("return (int)self->ob_itself;")
- OutRbrace()
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFTypeRef type-%%d object at 0x%%8.8x for 0x%%8.8x>", (int)CFGetTypeID(self->ob_itself), (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
+ def outputCheckNewArg(self):
+ Output('if (itself == NULL)')
+ OutLbrace()
+ Output('PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");')
+ Output('return NULL;')
+ OutRbrace()
+ def outputStructMembers(self):
+ GlobalObjectDefinition.outputStructMembers(self)
+ Output("void (*ob_freeit)(CFTypeRef ptr);")
+ def outputInitStructMembers(self):
+ GlobalObjectDefinition.outputInitStructMembers(self)
+## Output("it->ob_freeit = NULL;")
+ Output("it->ob_freeit = CFRelease;")
+ def outputCheckConvertArg(self):
+ Out("""
+ if (v == Py_None) { *p_itself = NULL; return 1; }
+ /* Check for other CF objects here */
+ """)
+ def outputCleanupStructMembers(self):
+ Output("if (self->ob_freeit && self->ob_itself)")
+ OutLbrace()
+ Output("self->ob_freeit((CFTypeRef)self->ob_itself);")
+ Output("self->ob_itself = NULL;")
+ OutRbrace()
- def output_tp_newBody(self):
- Output("PyObject *self;")
- Output
- Output("if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;")
- Output("((%s *)self)->ob_itself = NULL;", self.objecttype)
- Output("((%s *)self)->ob_freeit = CFRelease;", self.objecttype)
- Output("return self;")
-
- def output_tp_initBody(self):
- Output("%s itself;", self.itselftype)
- Output("char *kw[] = {\"itself\", 0};")
- Output()
- Output("if (PyArg_ParseTupleAndKeywords(args, kwds, \"O&\", kw, %s_Convert, &itself))",
- self.prefix)
- OutLbrace()
- Output("((%s *)self)->ob_itself = itself;", self.objecttype)
- Output("return 0;")
- OutRbrace()
- if self.prefix != 'CFTypeRefObj':
- Output()
- Output("/* Any CFTypeRef descendent is allowed as initializer too */")
- Output("if (PyArg_ParseTupleAndKeywords(args, kwds, \"O&\", kw, CFTypeRefObj_Convert, &itself))")
- OutLbrace()
- Output("((%s *)self)->ob_itself = itself;", self.objecttype)
- Output("return 0;")
- OutRbrace()
- Output("return -1;")
+ def outputCompare(self):
+ Output()
+ Output("static int %s_compare(%s *self, %s *other)", self.prefix, self.objecttype, self.objecttype)
+ OutLbrace()
+ Output("/* XXXX Or should we use CFEqual?? */")
+ Output("if ( self->ob_itself > other->ob_itself ) return 1;")
+ Output("if ( self->ob_itself < other->ob_itself ) return -1;")
+ Output("return 0;")
+ OutRbrace()
+
+ def outputHash(self):
+ Output()
+ Output("static int %s_hash(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("/* XXXX Or should we use CFHash?? */")
+ Output("return (int)self->ob_itself;")
+ OutRbrace()
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFTypeRef type-%%d object at 0x%%8.8x for 0x%%8.8x>", (int)CFGetTypeID(self->ob_itself), (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
+
+ def output_tp_newBody(self):
+ Output("PyObject *self;")
+ Output
+ Output("if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;")
+ Output("((%s *)self)->ob_itself = NULL;", self.objecttype)
+ Output("((%s *)self)->ob_freeit = CFRelease;", self.objecttype)
+ Output("return self;")
+
+ def output_tp_initBody(self):
+ Output("%s itself;", self.itselftype)
+ Output("char *kw[] = {\"itself\", 0};")
+ Output()
+ Output("if (PyArg_ParseTupleAndKeywords(args, kwds, \"O&\", kw, %s_Convert, &itself))",
+ self.prefix)
+ OutLbrace()
+ Output("((%s *)self)->ob_itself = itself;", self.objecttype)
+ Output("return 0;")
+ OutRbrace()
+ if self.prefix != 'CFTypeRefObj':
+ Output()
+ Output("/* Any CFTypeRef descendent is allowed as initializer too */")
+ Output("if (PyArg_ParseTupleAndKeywords(args, kwds, \"O&\", kw, CFTypeRefObj_Convert, &itself))")
+ OutLbrace()
+ Output("((%s *)self)->ob_itself = itself;", self.objecttype)
+ Output("return 0;")
+ OutRbrace()
+ Output("return -1;")
class CFTypeRefObjectDefinition(MyGlobalObjectDefinition):
- pass
-
-class CFArrayRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFTypeRef_Type"
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFArrayRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
-
-class CFMutableArrayRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFArrayRef_Type"
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFMutableArrayRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
-
-class CFDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFTypeRef_Type"
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFDictionaryRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
-
-class CFMutableDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFDictionaryRef_Type"
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFMutableDictionaryRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
-
-class CFDataRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFTypeRef_Type"
-
- def outputCheckConvertArg(self):
- Out("""
- if (v == Py_None) { *p_itself = NULL; return 1; }
- if (PyString_Check(v)) {
- char *cStr;
- int cLen;
- if( PyString_AsStringAndSize(v, &cStr, &cLen) < 0 ) return 0;
- *p_itself = CFDataCreate((CFAllocatorRef)NULL, (unsigned char *)cStr, cLen);
- return 1;
- }
- """)
+ pass
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFDataRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
-
+class CFArrayRefObjectDefinition(MyGlobalObjectDefinition):
+ basetype = "CFTypeRef_Type"
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFArrayRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
+
+class CFMutableArrayRefObjectDefinition(MyGlobalObjectDefinition):
+ basetype = "CFArrayRef_Type"
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFMutableArrayRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
+
+class CFDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
+ basetype = "CFTypeRef_Type"
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFDictionaryRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
+
+class CFMutableDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
+ basetype = "CFDictionaryRef_Type"
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFMutableDictionaryRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
+
+class CFDataRefObjectDefinition(MyGlobalObjectDefinition):
+ basetype = "CFTypeRef_Type"
+
+ def outputCheckConvertArg(self):
+ Out("""
+ if (v == Py_None) { *p_itself = NULL; return 1; }
+ if (PyString_Check(v)) {
+ char *cStr;
+ int cLen;
+ if( PyString_AsStringAndSize(v, &cStr, &cLen) < 0 ) return 0;
+ *p_itself = CFDataCreate((CFAllocatorRef)NULL, (unsigned char *)cStr, cLen);
+ return 1;
+ }
+ """)
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFDataRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
+
class CFMutableDataRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFDataRef_Type"
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFMutableDataRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
+ basetype = "CFDataRef_Type"
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFMutableDataRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
class CFStringRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFTypeRef_Type"
-
- def outputCheckConvertArg(self):
- Out("""
- if (v == Py_None) { *p_itself = NULL; return 1; }
- if (PyString_Check(v)) {
- char *cStr;
- if (!PyArg_Parse(v, "es", "ascii", &cStr))
- return NULL;
- *p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
- return 1;
- }
- if (PyUnicode_Check(v)) {
- /* We use the CF types here, if Python was configured differently that will give an error */
- CFIndex size = PyUnicode_GetSize(v);
- UniChar *unichars = PyUnicode_AsUnicode(v);
- if (!unichars) return 0;
- *p_itself = CFStringCreateWithCharacters((CFAllocatorRef)NULL, unichars, size);
- return 1;
- }
-
- """)
+ basetype = "CFTypeRef_Type"
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFStringRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
+ def outputCheckConvertArg(self):
+ Out("""
+ if (v == Py_None) { *p_itself = NULL; return 1; }
+ if (PyString_Check(v)) {
+ char *cStr;
+ if (!PyArg_Parse(v, "es", "ascii", &cStr))
+ return NULL;
+ *p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
+ return 1;
+ }
+ if (PyUnicode_Check(v)) {
+ /* We use the CF types here, if Python was configured differently that will give an error */
+ CFIndex size = PyUnicode_GetSize(v);
+ UniChar *unichars = PyUnicode_AsUnicode(v);
+ if (!unichars) return 0;
+ *p_itself = CFStringCreateWithCharacters((CFAllocatorRef)NULL, unichars, size);
+ return 1;
+ }
+
+ """)
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFStringRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
class CFMutableStringRefObjectDefinition(CFStringRefObjectDefinition):
- basetype = "CFStringRef_Type"
-
- def outputCheckConvertArg(self):
- # Mutable, don't allow Python strings
- return MyGlobalObjectDefinition.outputCheckConvertArg(self)
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFMutableStringRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
+ basetype = "CFStringRef_Type"
+
+ def outputCheckConvertArg(self):
+ # Mutable, don't allow Python strings
+ return MyGlobalObjectDefinition.outputCheckConvertArg(self)
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFMutableStringRef object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
class CFURLRefObjectDefinition(MyGlobalObjectDefinition):
- basetype = "CFTypeRef_Type"
-
- def outputRepr(self):
- Output()
- Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
- OutLbrace()
- Output("char buf[100];")
- Output("""sprintf(buf, "<CFURL object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
- Output("return PyString_FromString(buf);")
- OutRbrace()
+ basetype = "CFTypeRef_Type"
+
+ def outputRepr(self):
+ Output()
+ Output("static PyObject * %s_repr(%s *self)", self.prefix, self.objecttype)
+ OutLbrace()
+ Output("char buf[100];")
+ Output("""sprintf(buf, "<CFURL object at 0x%%8.8x for 0x%%8.8x>", (unsigned)self, (unsigned)self->ob_itself);""")
+ Output("return PyString_FromString(buf);")
+ OutRbrace()
# ADD object class here
@@ -554,10 +554,10 @@
if( data == NULL ) return PyErr_NoMemory();
if ( CFStringGetCString(_self->ob_itself, data, size, 0) ) {
- _res = (PyObject *)PyString_FromString(data);
+ _res = (PyObject *)PyString_FromString(data);
} else {
- PyErr_SetString(PyExc_RuntimeError, "CFStringGetCString could not fit the string");
- _res = NULL;
+ PyErr_SetString(PyExc_RuntimeError, "CFStringGetCString could not fit the string");
+ _res = NULL;
}
free(data);
return _res;
@@ -605,16 +605,16 @@
CFStringRef errorString;
if (!PyArg_ParseTuple(_args, "l",
&mutabilityOption))
- return NULL;
+ return NULL;
_rv = CFPropertyListCreateFromXMLData((CFAllocatorRef)NULL,
_self->ob_itself,
mutabilityOption,
&errorString);
if (errorString)
- CFRelease(errorString);
+ CFRelease(errorString);
if (_rv == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Parse error in XML data");
- return NULL;
+ PyErr_SetString(PyExc_RuntimeError, "Parse error in XML data");
+ return NULL;
}
_res = Py_BuildValue("O&",
CFTypeRefObj_New, _rv);
@@ -639,17 +639,17 @@
CFTypeID typeid;
if (!PyArg_ParseTuple(_args, "O&", PyCF_Python2CF, &rv))
- return NULL;
+ return NULL;
typeid = CFGetTypeID(rv);
if (typeid == CFStringGetTypeID())
- return Py_BuildValue("O&", CFStringRefObj_New, rv);
+ return Py_BuildValue("O&", CFStringRefObj_New, rv);
if (typeid == CFArrayGetTypeID())
- return Py_BuildValue("O&", CFArrayRefObj_New, rv);
+ return Py_BuildValue("O&", CFArrayRefObj_New, rv);
if (typeid == CFDictionaryGetTypeID())
- return Py_BuildValue("O&", CFDictionaryRefObj_New, rv);
+ return Py_BuildValue("O&", CFDictionaryRefObj_New, rv);
if (typeid == CFURLGetTypeID())
- return Py_BuildValue("O&", CFURLRefObj_New, rv);
+ return Py_BuildValue("O&", CFURLRefObj_New, rv);
_res = Py_BuildValue("O&", CFTypeRefObj_New, rv);
return _res;
@@ -663,4 +663,3 @@
# generate output (open the output file as late as possible)
SetOutputFileName(OUTPUTFILE)
module.generate()
-