[Python-checkins] python/dist/src/Mac/Modules/cf cfscan.py, 1.12,
1.13 cfsupport.py, 1.27, 1.28
tim_one at users.sourceforge.net
tim_one at users.sourceforge.net
Sun Jul 18 07:58:41 CEST 2004
- Previous message: [Python-checkins] python/dist/src/Mac/Modules/carbonevt
CarbonEvtscan.py, 1.10, 1.11 CarbonEvtsupport.py, 1.15, 1.16
- Next message: [Python-checkins] python/dist/src/Tools/framer/framer __init__.py,
1.1, 1.2 bases.py, 1.1, 1.2 function.py, 1.1, 1.2 struct.py,
1.1, 1.2 structparse.py, 1.1, 1.2 template.py, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/python/python/dist/src/Mac/Modules/cf
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29056/Modules/cf
Modified Files:
cfscan.py cfsupport.py
Log Message:
Whitespace normalization, via reindent.py.
Index: cfscan.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/cf/cfscan.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** cfscan.py 15 Aug 2002 21:48:13 -0000 1.12
--- cfscan.py 18 Jul 2004 05:58:08 -0000 1.13
***************
*** 9,142 ****
LONG = "CoreFoundation"
SHORT = "cf"
! 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! ==="
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 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 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 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", "*", "*")]),
- # 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()
--- 9,142 ----
LONG = "CoreFoundation"
SHORT = "cf"
! 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! ==="
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 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 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 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", "*", "*")]),
!
! # 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()
Index: cfsupport.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/cf/cfsupport.py,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** cfsupport.py 15 Jul 2004 14:25:48 -0000 1.27
--- cfsupport.py 18 Jul 2004 05:58:08 -0000 1.28
***************
*** 9,18 ****
# Declarations that change for each manager
! 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
INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
! OUTPUTFILE = MODNAME + "module.c" # The file generated by this program
from macsupport import *
--- 9,18 ----
# Declarations that change for each manager
! 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
INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
! OUTPUTFILE = MODNAME + "module.c" # The file generated by this program
from macsupport import *
***************
*** 21,41 ****
# which we skip anyway, and the object as the second arg.
class MethodSkipArg1(MethodGenerator):
! """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)
--- 21,41 ----
# which we skip anyway, and the object as the second arg.
class MethodSkipArg1(MethodGenerator):
! """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)
***************
*** 112,116 ****
{
! return Py_BuildValue("ll", (long)itself->location, (long)itself->length);
}
--- 112,116 ----
{
! return Py_BuildValue("ll", (long)itself->location, (long)itself->length);
}
***************
*** 118,128 ****
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;
}
--- 118,128 ----
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;
}
***************
*** 132,137 ****
{
if ( v == Py_None ) {
! p_itself = NULL;
! return 1;
}
return CFURLRefObj_Convert(v, p_itself);
--- 132,137 ----
{
if ( v == Py_None ) {
! p_itself = NULL;
! return 1;
}
return CFURLRefObj_Convert(v, p_itself);
***************
*** 144,183 ****
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);
}
int CFObj_Convert(PyObject *v, CFTypeRef *p_itself)
{
! 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;
}
"""
--- 144,183 ----
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);
}
int CFObj_Convert(PyObject *v, CFTypeRef *p_itself)
{
! 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;
}
"""
***************
*** 226,230 ****
char_ptr = stringptr
! return_stringptr = Type("char *", "s") # ONLY FOR RETURN VALUES!!
CFAllocatorRef = FakeType("(CFAllocatorRef)NULL")
--- 226,230 ----
char_ptr = stringptr
! return_stringptr = Type("char *", "s") # ONLY FOR RETURN VALUES!!
CFAllocatorRef = FakeType("(CFAllocatorRef)NULL")
***************
*** 252,482 ****
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 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;
! }
! """)
- 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()
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;
! }
!
! """)
! 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()
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()
--- 252,482 ----
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 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;
! }
! """)
!
! 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()
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;
! }
!
! """)
!
! 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()
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()
***************
*** 555,562 ****
if( data == NULL ) return PyErr_NoMemory();
if ( CFStringGetCString(_self->ob_itself, data, size, 0) ) {
! _res = (PyObject *)PyString_FromString(data);
} else {
! PyErr_SetString(PyExc_RuntimeError, "CFStringGetCString could not fit the string");
! _res = NULL;
}
free(data);
--- 555,562 ----
if( data == NULL ) return PyErr_NoMemory();
if ( CFStringGetCString(_self->ob_itself, data, size, 0) ) {
! _res = (PyObject *)PyString_FromString(data);
} else {
! PyErr_SetString(PyExc_RuntimeError, "CFStringGetCString could not fit the string");
! _res = NULL;
}
free(data);
***************
*** 606,610 ****
if (!PyArg_ParseTuple(_args, "l",
&mutabilityOption))
! return NULL;
_rv = CFPropertyListCreateFromXMLData((CFAllocatorRef)NULL,
_self->ob_itself,
--- 606,610 ----
if (!PyArg_ParseTuple(_args, "l",
&mutabilityOption))
! return NULL;
_rv = CFPropertyListCreateFromXMLData((CFAllocatorRef)NULL,
_self->ob_itself,
***************
*** 612,619 ****
&errorString);
if (errorString)
! CFRelease(errorString);
if (_rv == NULL) {
! PyErr_SetString(PyExc_RuntimeError, "Parse error in XML data");
! return NULL;
}
_res = Py_BuildValue("O&",
--- 612,619 ----
&errorString);
if (errorString)
! CFRelease(errorString);
if (_rv == NULL) {
! PyErr_SetString(PyExc_RuntimeError, "Parse error in XML data");
! return NULL;
}
_res = Py_BuildValue("O&",
***************
*** 640,654 ****
if (!PyArg_ParseTuple(_args, "O&", PyCF_Python2CF, &rv))
! return NULL;
typeid = CFGetTypeID(rv);
if (typeid == CFStringGetTypeID())
! return Py_BuildValue("O&", CFStringRefObj_New, rv);
if (typeid == CFArrayGetTypeID())
! return Py_BuildValue("O&", CFArrayRefObj_New, rv);
if (typeid == CFDictionaryGetTypeID())
! return Py_BuildValue("O&", CFDictionaryRefObj_New, rv);
if (typeid == CFURLGetTypeID())
! return Py_BuildValue("O&", CFURLRefObj_New, rv);
_res = Py_BuildValue("O&", CFTypeRefObj_New, rv);
--- 640,654 ----
if (!PyArg_ParseTuple(_args, "O&", PyCF_Python2CF, &rv))
! return NULL;
typeid = CFGetTypeID(rv);
if (typeid == CFStringGetTypeID())
! return Py_BuildValue("O&", CFStringRefObj_New, rv);
if (typeid == CFArrayGetTypeID())
! return Py_BuildValue("O&", CFArrayRefObj_New, rv);
if (typeid == CFDictionaryGetTypeID())
! return Py_BuildValue("O&", CFDictionaryRefObj_New, rv);
if (typeid == CFURLGetTypeID())
! return Py_BuildValue("O&", CFURLRefObj_New, rv);
_res = Py_BuildValue("O&", CFTypeRefObj_New, rv);
***************
*** 664,666 ****
SetOutputFileName(OUTPUTFILE)
module.generate()
-
--- 664,665 ----
- Previous message: [Python-checkins] python/dist/src/Mac/Modules/carbonevt
CarbonEvtscan.py, 1.10, 1.11 CarbonEvtsupport.py, 1.15, 1.16
- Next message: [Python-checkins] python/dist/src/Tools/framer/framer __init__.py,
1.1, 1.2 bases.py, 1.1, 1.2 function.py, 1.1, 1.2 struct.py,
1.1, 1.2 structparse.py, 1.1, 1.2 template.py, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Python-checkins
mailing list