summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-07-17 20:47:13 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-07-17 20:47:13 (GMT)
commit6f70d62855311cb02c0cc9994b3706724cad61fb (patch)
treee568f0fa3f23d36116f945c31b87762776e3c2d7
parent3d3a91c18854aabb4f32cfd4a894de5099d4832a (diff)
downloadcpython-6f70d62855311cb02c0cc9994b3706724cad61fb.zip
cpython-6f70d62855311cb02c0cc9994b3706724cad61fb.tar.gz
cpython-6f70d62855311cb02c0cc9994b3706724cad61fb.tar.bz2
Used an adapted MethodGenerator to generate methods too for functions that have the object as the second arg after a first CFAllocatorRef arg (which we pass as NULL always anyway).
-rw-r--r--Mac/Modules/cf/CFmodule.c585
-rw-r--r--Mac/Modules/cf/cfscan.py10
-rw-r--r--Mac/Modules/cf/cfsupport.py31
3 files changed, 300 insertions, 326 deletions
diff --git a/Mac/Modules/cf/CFmodule.c b/Mac/Modules/cf/CFmodule.c
index dfed13d..68e863f 100644
--- a/Mac/Modules/cf/CFmodule.c
+++ b/Mac/Modules/cf/CFmodule.c
@@ -17,7 +17,12 @@
#ifdef WITHOUT_FRAMEWORKS
-#include <CoreFoundation.h>
+#include <CFBase.h>
+#include <CFArray.h>
+#include <CFData.h>
+#include <CFDictionary.h>
+#include <CFString.h>
+#include <CFURL.h>
#else
#include <CoreFoundation.h>
#endif
@@ -27,6 +32,8 @@ staticforward PyObject *CFTypeRefObj_New(CFTypeRef);
staticforward int CFTypeRefObj_Convert(PyObject *, CFTypeRef *);
staticforward PyObject *CFStringRefObj_New(CFStringRef);
staticforward int CFStringRefObj_Convert(PyObject *, CFStringRef *);
+staticforward PyObject *CFURLRefObj_New(CFURLRef);
+staticforward int CFURLRefObj_Convert(PyObject *, CFURLRef *);
staticforward int CFURLRefObj_Convert(PyObject *, CFURLRef *);
@@ -342,6 +349,19 @@ static void CFArrayRefObj_dealloc(CFArrayRefObject *self)
PyMem_DEL(self);
}
+static PyObject *CFArrayRefObj_CFArrayCreateCopy(CFArrayRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFArrayRef _rv;
+ if (!PyArg_ParseTuple(_args, ""))
+ return NULL;
+ _rv = CFArrayCreateCopy((CFAllocatorRef)NULL,
+ _self->ob_itself);
+ _res = Py_BuildValue("O&",
+ CFArrayRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFArrayRefObj_CFArrayGetCount(CFArrayRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -355,9 +375,29 @@ static PyObject *CFArrayRefObj_CFArrayGetCount(CFArrayRefObject *_self, PyObject
return _res;
}
+static PyObject *CFArrayRefObj_CFStringCreateByCombiningStrings(CFArrayRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFStringRef _rv;
+ CFStringRef separatorString;
+ if (!PyArg_ParseTuple(_args, "O&",
+ CFStringRefObj_Convert, &separatorString))
+ return NULL;
+ _rv = CFStringCreateByCombiningStrings((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ separatorString);
+ _res = Py_BuildValue("O&",
+ CFStringRefObj_New, _rv);
+ return _res;
+}
+
static PyMethodDef CFArrayRefObj_methods[] = {
+ {"CFArrayCreateCopy", (PyCFunction)CFArrayRefObj_CFArrayCreateCopy, 1,
+ "() -> (CFArrayRef _rv)"},
{"CFArrayGetCount", (PyCFunction)CFArrayRefObj_CFArrayGetCount, 1,
"() -> (CFIndex _rv)"},
+ {"CFStringCreateByCombiningStrings", (PyCFunction)CFArrayRefObj_CFStringCreateByCombiningStrings, 1,
+ "(CFStringRef separatorString) -> (CFStringRef _rv)"},
{NULL, NULL, 0}
};
@@ -612,6 +652,19 @@ static void CFDictionaryRefObj_dealloc(CFDictionaryRefObject *self)
PyMem_DEL(self);
}
+static PyObject *CFDictionaryRefObj_CFDictionaryCreateCopy(CFDictionaryRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFDictionaryRef _rv;
+ if (!PyArg_ParseTuple(_args, ""))
+ return NULL;
+ _rv = CFDictionaryCreateCopy((CFAllocatorRef)NULL,
+ _self->ob_itself);
+ _res = Py_BuildValue("O&",
+ CFDictionaryRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFDictionaryRefObj_CFDictionaryGetCount(CFDictionaryRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -626,6 +679,8 @@ static PyObject *CFDictionaryRefObj_CFDictionaryGetCount(CFDictionaryRefObject *
}
static PyMethodDef CFDictionaryRefObj_methods[] = {
+ {"CFDictionaryCreateCopy", (PyCFunction)CFDictionaryRefObj_CFDictionaryCreateCopy, 1,
+ "() -> (CFDictionaryRef _rv)"},
{"CFDictionaryGetCount", (PyCFunction)CFDictionaryRefObj_CFDictionaryGetCount, 1,
"() -> (CFIndex _rv)"},
{NULL, NULL, 0}
@@ -845,6 +900,19 @@ static void CFDataRefObj_dealloc(CFDataRefObject *self)
PyMem_DEL(self);
}
+static PyObject *CFDataRefObj_CFDataCreateCopy(CFDataRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFDataRef _rv;
+ if (!PyArg_ParseTuple(_args, ""))
+ return NULL;
+ _rv = CFDataCreateCopy((CFAllocatorRef)NULL,
+ _self->ob_itself);
+ _res = Py_BuildValue("O&",
+ CFDataRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFDataRefObj_CFDataGetLength(CFDataRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -858,9 +926,29 @@ static PyObject *CFDataRefObj_CFDataGetLength(CFDataRefObject *_self, PyObject *
return _res;
}
+static PyObject *CFDataRefObj_CFStringCreateFromExternalRepresentation(CFDataRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFStringRef _rv;
+ CFStringEncoding encoding;
+ if (!PyArg_ParseTuple(_args, "l",
+ &encoding))
+ return NULL;
+ _rv = CFStringCreateFromExternalRepresentation((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ encoding);
+ _res = Py_BuildValue("O&",
+ CFStringRefObj_New, _rv);
+ return _res;
+}
+
static PyMethodDef CFDataRefObj_methods[] = {
+ {"CFDataCreateCopy", (PyCFunction)CFDataRefObj_CFDataCreateCopy, 1,
+ "() -> (CFDataRef _rv)"},
{"CFDataGetLength", (PyCFunction)CFDataRefObj_CFDataGetLength, 1,
"() -> (CFIndex _rv)"},
+ {"CFStringCreateFromExternalRepresentation", (PyCFunction)CFDataRefObj_CFStringCreateFromExternalRepresentation, 1,
+ "(CFStringEncoding encoding) -> (CFStringRef _rv)"},
{NULL, NULL, 0}
};
@@ -1173,6 +1261,35 @@ static void CFStringRefObj_dealloc(CFStringRefObject *self)
PyMem_DEL(self);
}
+static PyObject *CFStringRefObj_CFStringCreateWithSubstring(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFStringRef _rv;
+ CFRange range;
+ if (!PyArg_ParseTuple(_args, "O&",
+ CFRange_Convert, &range))
+ return NULL;
+ _rv = CFStringCreateWithSubstring((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ range);
+ _res = Py_BuildValue("O&",
+ CFStringRefObj_New, _rv);
+ return _res;
+}
+
+static PyObject *CFStringRefObj_CFStringCreateCopy(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFStringRef _rv;
+ if (!PyArg_ParseTuple(_args, ""))
+ return NULL;
+ _rv = CFStringCreateCopy((CFAllocatorRef)NULL,
+ _self->ob_itself);
+ _res = Py_BuildValue("O&",
+ CFStringRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFStringRefObj_CFStringGetLength(CFStringRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1220,6 +1337,25 @@ static PyObject *CFStringRefObj_CFStringGetBytes(CFStringRefObject *_self, PyObj
return _res;
}
+static PyObject *CFStringRefObj_CFStringCreateExternalRepresentation(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFDataRef _rv;
+ CFStringEncoding encoding;
+ UInt8 lossByte;
+ if (!PyArg_ParseTuple(_args, "lb",
+ &encoding,
+ &lossByte))
+ return NULL;
+ _rv = CFStringCreateExternalRepresentation((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ encoding,
+ lossByte);
+ _res = Py_BuildValue("O&",
+ CFDataRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFStringRefObj_CFStringGetSmallestEncoding(CFStringRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1312,6 +1448,28 @@ static PyObject *CFStringRefObj_CFStringFindWithOptions(CFStringRefObject *_self
return _res;
}
+static PyObject *CFStringRefObj_CFStringCreateArrayWithFindResults(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFArrayRef _rv;
+ CFStringRef stringToFind;
+ CFRange rangeToSearch;
+ CFOptionFlags compareOptions;
+ if (!PyArg_ParseTuple(_args, "O&O&l",
+ CFStringRefObj_Convert, &stringToFind,
+ CFRange_Convert, &rangeToSearch,
+ &compareOptions))
+ return NULL;
+ _rv = CFStringCreateArrayWithFindResults((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ stringToFind,
+ rangeToSearch,
+ compareOptions);
+ _res = Py_BuildValue("O&",
+ CFArrayRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFStringRefObj_CFStringFind(CFStringRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1386,6 +1544,22 @@ static PyObject *CFStringRefObj_CFStringGetLineBounds(CFStringRefObject *_self,
return _res;
}
+static PyObject *CFStringRefObj_CFStringCreateArrayBySeparatingStrings(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFArrayRef _rv;
+ CFStringRef separatorString;
+ if (!PyArg_ParseTuple(_args, "O&",
+ CFStringRefObj_Convert, &separatorString))
+ return NULL;
+ _rv = CFStringCreateArrayBySeparatingStrings((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ separatorString);
+ _res = Py_BuildValue("O&",
+ CFArrayRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFStringRefObj_CFStringGetIntValue(CFStringRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1437,6 +1611,57 @@ static PyObject *CFStringRefObj_CFShowStr(CFStringRefObject *_self, PyObject *_a
return _res;
}
+static PyObject *CFStringRefObj_CFURLCreateWithString(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFURLRef _rv;
+ CFURLRef baseURL;
+ if (!PyArg_ParseTuple(_args, "O&",
+ OptionalCFURLRefObj_Convert, &baseURL))
+ return NULL;
+ _rv = CFURLCreateWithString((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ baseURL);
+ _res = Py_BuildValue("O&",
+ CFURLRefObj_New, _rv);
+ return _res;
+}
+
+static PyObject *CFStringRefObj_CFURLCreateWithFileSystemPath(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFURLRef _rv;
+ CFURLPathStyle pathStyle;
+ Boolean isDirectory;
+ if (!PyArg_ParseTuple(_args, "ll",
+ &pathStyle,
+ &isDirectory))
+ return NULL;
+ _rv = CFURLCreateWithFileSystemPath((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ pathStyle,
+ isDirectory);
+ _res = Py_BuildValue("O&",
+ CFURLRefObj_New, _rv);
+ return _res;
+}
+
+static PyObject *CFStringRefObj_CFURLCreateStringByReplacingPercentEscapes(CFStringRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFStringRef _rv;
+ CFStringRef charactersToLeaveEscaped;
+ if (!PyArg_ParseTuple(_args, "O&",
+ CFStringRefObj_Convert, &charactersToLeaveEscaped))
+ return NULL;
+ _rv = CFURLCreateStringByReplacingPercentEscapes((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ charactersToLeaveEscaped);
+ _res = Py_BuildValue("O&",
+ CFStringRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFStringRefObj_CFStringGetString(CFStringRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1475,10 +1700,16 @@ static PyObject *CFStringRefObj_CFStringGetUnicode(CFStringRefObject *_self, PyO
}
static PyMethodDef CFStringRefObj_methods[] = {
+ {"CFStringCreateWithSubstring", (PyCFunction)CFStringRefObj_CFStringCreateWithSubstring, 1,
+ "(CFRange range) -> (CFStringRef _rv)"},
+ {"CFStringCreateCopy", (PyCFunction)CFStringRefObj_CFStringCreateCopy, 1,
+ "() -> (CFStringRef _rv)"},
{"CFStringGetLength", (PyCFunction)CFStringRefObj_CFStringGetLength, 1,
"() -> (CFIndex _rv)"},
{"CFStringGetBytes", (PyCFunction)CFStringRefObj_CFStringGetBytes, 1,
"(CFRange range, CFStringEncoding encoding, UInt8 lossByte, Boolean isExternalRepresentation, CFIndex maxBufLen) -> (CFIndex _rv, UInt8 buffer, CFIndex usedBufLen)"},
+ {"CFStringCreateExternalRepresentation", (PyCFunction)CFStringRefObj_CFStringCreateExternalRepresentation, 1,
+ "(CFStringEncoding encoding, UInt8 lossByte) -> (CFDataRef _rv)"},
{"CFStringGetSmallestEncoding", (PyCFunction)CFStringRefObj_CFStringGetSmallestEncoding, 1,
"() -> (CFStringEncoding _rv)"},
{"CFStringGetFastestEncoding", (PyCFunction)CFStringRefObj_CFStringGetFastestEncoding, 1,
@@ -1489,6 +1720,8 @@ static PyMethodDef CFStringRefObj_methods[] = {
"(CFStringRef string2, CFOptionFlags compareOptions) -> (CFComparisonResult _rv)"},
{"CFStringFindWithOptions", (PyCFunction)CFStringRefObj_CFStringFindWithOptions, 1,
"(CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags searchOptions) -> (Boolean _rv, CFRange result)"},
+ {"CFStringCreateArrayWithFindResults", (PyCFunction)CFStringRefObj_CFStringCreateArrayWithFindResults, 1,
+ "(CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags compareOptions) -> (CFArrayRef _rv)"},
{"CFStringFind", (PyCFunction)CFStringRefObj_CFStringFind, 1,
"(CFStringRef stringToFind, CFOptionFlags compareOptions) -> (CFRange _rv)"},
{"CFStringHasPrefix", (PyCFunction)CFStringRefObj_CFStringHasPrefix, 1,
@@ -1497,6 +1730,8 @@ static PyMethodDef CFStringRefObj_methods[] = {
"(CFStringRef suffix) -> (Boolean _rv)"},
{"CFStringGetLineBounds", (PyCFunction)CFStringRefObj_CFStringGetLineBounds, 1,
"(CFRange range) -> (CFIndex lineBeginIndex, CFIndex lineEndIndex, CFIndex contentsEndIndex)"},
+ {"CFStringCreateArrayBySeparatingStrings", (PyCFunction)CFStringRefObj_CFStringCreateArrayBySeparatingStrings, 1,
+ "(CFStringRef separatorString) -> (CFArrayRef _rv)"},
{"CFStringGetIntValue", (PyCFunction)CFStringRefObj_CFStringGetIntValue, 1,
"() -> (SInt32 _rv)"},
{"CFStringGetDoubleValue", (PyCFunction)CFStringRefObj_CFStringGetDoubleValue, 1,
@@ -1505,6 +1740,12 @@ static PyMethodDef CFStringRefObj_methods[] = {
"() -> (CFStringEncoding _rv)"},
{"CFShowStr", (PyCFunction)CFStringRefObj_CFShowStr, 1,
"() -> None"},
+ {"CFURLCreateWithString", (PyCFunction)CFStringRefObj_CFURLCreateWithString, 1,
+ "(CFURLRef baseURL) -> (CFURLRef _rv)"},
+ {"CFURLCreateWithFileSystemPath", (PyCFunction)CFStringRefObj_CFURLCreateWithFileSystemPath, 1,
+ "(CFURLPathStyle pathStyle, Boolean isDirectory) -> (CFURLRef _rv)"},
+ {"CFURLCreateStringByReplacingPercentEscapes", (PyCFunction)CFStringRefObj_CFURLCreateStringByReplacingPercentEscapes, 1,
+ "(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)"},
{"CFStringGetString", (PyCFunction)CFStringRefObj_CFStringGetString, 1,
"() -> (string _rv)"},
{"CFStringGetUnicode", (PyCFunction)CFStringRefObj_CFStringGetUnicode, 1,
@@ -1897,6 +2138,25 @@ static void CFURLRefObj_dealloc(CFURLRefObject *self)
PyMem_DEL(self);
}
+static PyObject *CFURLRefObj_CFURLCreateData(CFURLRefObject *_self, PyObject *_args)
+{
+ PyObject *_res = NULL;
+ CFDataRef _rv;
+ CFStringEncoding encoding;
+ Boolean escapeWhitespace;
+ if (!PyArg_ParseTuple(_args, "ll",
+ &encoding,
+ &escapeWhitespace))
+ return NULL;
+ _rv = CFURLCreateData((CFAllocatorRef)NULL,
+ _self->ob_itself,
+ encoding,
+ escapeWhitespace);
+ _res = Py_BuildValue("O&",
+ CFDataRefObj_New, _rv);
+ return _res;
+}
+
static PyObject *CFURLRefObj_CFURLCopyAbsoluteURL(CFURLRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2115,6 +2375,8 @@ static PyObject *CFURLRefObj_CFURLCopyFragment(CFURLRefObject *_self, PyObject *
}
static PyMethodDef CFURLRefObj_methods[] = {
+ {"CFURLCreateData", (PyCFunction)CFURLRefObj_CFURLCreateData, 1,
+ "(CFStringEncoding encoding, Boolean escapeWhitespace) -> (CFDataRef _rv)"},
{"CFURLCopyAbsoluteURL", (PyCFunction)CFURLRefObj_CFURLCopyAbsoluteURL, 1,
"() -> (CFURLRef _rv)"},
{"CFURLGetString", (PyCFunction)CFURLRefObj_CFURLGetString, 1,
@@ -2262,22 +2524,6 @@ static PyObject *CF_CFArrayGetTypeID(PyObject *_self, PyObject *_args)
return _res;
}
-static PyObject *CF_CFArrayCreateCopy(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFArrayRef _rv;
- CFArrayRef srcArray;
- PyMac_PRECHECK(CFArrayCreateCopy);
- if (!PyArg_ParseTuple(_args, "O&",
- CFArrayRefObj_Convert, &srcArray))
- return NULL;
- _rv = CFArrayCreateCopy((CFAllocatorRef)NULL,
- srcArray);
- _res = Py_BuildValue("O&",
- CFArrayRefObj_New, _rv);
- return _res;
-}
-
static PyObject *CF_CFArrayCreateMutable(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2368,22 +2614,6 @@ static PyObject *CF_CFDataCreateWithBytesNoCopy(PyObject *_self, PyObject *_args
return _res;
}
-static PyObject *CF_CFDataCreateCopy(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFDataRef _rv;
- CFDataRef data;
- PyMac_PRECHECK(CFDataCreateCopy);
- if (!PyArg_ParseTuple(_args, "O&",
- CFDataRefObj_Convert, &data))
- return NULL;
- _rv = CFDataCreateCopy((CFAllocatorRef)NULL,
- data);
- _res = Py_BuildValue("O&",
- CFDataRefObj_New, _rv);
- return _res;
-}
-
static PyObject *CF_CFDataCreateMutable(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2432,22 +2662,6 @@ static PyObject *CF_CFDictionaryGetTypeID(PyObject *_self, PyObject *_args)
return _res;
}
-static PyObject *CF_CFDictionaryCreateCopy(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFDictionaryRef _rv;
- CFDictionaryRef dict;
- PyMac_PRECHECK(CFDictionaryCreateCopy);
- if (!PyArg_ParseTuple(_args, "O&",
- CFDictionaryRefObj_Convert, &dict))
- return NULL;
- _rv = CFDictionaryCreateCopy((CFAllocatorRef)NULL,
- dict);
- _res = Py_BuildValue("O&",
- CFDictionaryRefObj_New, _rv);
- return _res;
-}
-
static PyObject *CF_CFDictionaryCreateMutable(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2576,41 +2790,6 @@ static PyObject *CF_CFStringCreateWithCStringNoCopy(PyObject *_self, PyObject *_
return _res;
}
-static PyObject *CF_CFStringCreateWithSubstring(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFStringRef _rv;
- CFStringRef str;
- CFRange range;
- PyMac_PRECHECK(CFStringCreateWithSubstring);
- if (!PyArg_ParseTuple(_args, "O&O&",
- CFStringRefObj_Convert, &str,
- CFRange_Convert, &range))
- return NULL;
- _rv = CFStringCreateWithSubstring((CFAllocatorRef)NULL,
- str,
- range);
- _res = Py_BuildValue("O&",
- CFStringRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFStringCreateCopy(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFStringRef _rv;
- CFStringRef theString;
- PyMac_PRECHECK(CFStringCreateCopy);
- if (!PyArg_ParseTuple(_args, "O&",
- CFStringRefObj_Convert, &theString))
- return NULL;
- _rv = CFStringCreateCopy((CFAllocatorRef)NULL,
- theString);
- _res = Py_BuildValue("O&",
- CFStringRefObj_New, _rv);
- return _res;
-}
-
static PyObject *CF_CFStringCreateMutable(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2672,47 +2851,6 @@ static PyObject *CF_CFStringCreateWithBytes(PyObject *_self, PyObject *_args)
return _res;
}
-static PyObject *CF_CFStringCreateFromExternalRepresentation(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFStringRef _rv;
- CFDataRef data;
- CFStringEncoding encoding;
- PyMac_PRECHECK(CFStringCreateFromExternalRepresentation);
- if (!PyArg_ParseTuple(_args, "O&l",
- CFDataRefObj_Convert, &data,
- &encoding))
- return NULL;
- _rv = CFStringCreateFromExternalRepresentation((CFAllocatorRef)NULL,
- data,
- encoding);
- _res = Py_BuildValue("O&",
- CFStringRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFStringCreateExternalRepresentation(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFDataRef _rv;
- CFStringRef theString;
- CFStringEncoding encoding;
- UInt8 lossByte;
- PyMac_PRECHECK(CFStringCreateExternalRepresentation);
- if (!PyArg_ParseTuple(_args, "O&lb",
- CFStringRefObj_Convert, &theString,
- &encoding,
- &lossByte))
- return NULL;
- _rv = CFStringCreateExternalRepresentation((CFAllocatorRef)NULL,
- theString,
- encoding,
- lossByte);
- _res = Py_BuildValue("O&",
- CFDataRefObj_New, _rv);
- return _res;
-}
-
static PyObject *CF_CFStringGetSystemEncoding(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2744,69 +2882,6 @@ static PyObject *CF_CFStringGetMaximumSizeForEncoding(PyObject *_self, PyObject
return _res;
}
-static PyObject *CF_CFStringCreateArrayWithFindResults(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFArrayRef _rv;
- CFStringRef theString;
- CFStringRef stringToFind;
- CFRange rangeToSearch;
- CFOptionFlags compareOptions;
- PyMac_PRECHECK(CFStringCreateArrayWithFindResults);
- if (!PyArg_ParseTuple(_args, "O&O&O&l",
- CFStringRefObj_Convert, &theString,
- CFStringRefObj_Convert, &stringToFind,
- CFRange_Convert, &rangeToSearch,
- &compareOptions))
- return NULL;
- _rv = CFStringCreateArrayWithFindResults((CFAllocatorRef)NULL,
- theString,
- stringToFind,
- rangeToSearch,
- compareOptions);
- _res = Py_BuildValue("O&",
- CFArrayRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFStringCreateByCombiningStrings(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFStringRef _rv;
- CFArrayRef theArray;
- CFStringRef separatorString;
- PyMac_PRECHECK(CFStringCreateByCombiningStrings);
- if (!PyArg_ParseTuple(_args, "O&O&",
- CFArrayRefObj_Convert, &theArray,
- CFStringRefObj_Convert, &separatorString))
- return NULL;
- _rv = CFStringCreateByCombiningStrings((CFAllocatorRef)NULL,
- theArray,
- separatorString);
- _res = Py_BuildValue("O&",
- CFStringRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFStringCreateArrayBySeparatingStrings(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFArrayRef _rv;
- CFStringRef theString;
- CFStringRef separatorString;
- PyMac_PRECHECK(CFStringCreateArrayBySeparatingStrings);
- if (!PyArg_ParseTuple(_args, "O&O&",
- CFStringRefObj_Convert, &theString,
- CFStringRefObj_Convert, &separatorString))
- return NULL;
- _rv = CFStringCreateArrayBySeparatingStrings((CFAllocatorRef)NULL,
- theString,
- separatorString);
- _res = Py_BuildValue("O&",
- CFArrayRefObj_New, _rv);
- return _res;
-}
-
static PyObject *CF_CFStringIsEncodingAvailable(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -2966,110 +3041,6 @@ static PyObject *CF_CFURLCreateWithBytes(PyObject *_self, PyObject *_args)
return _res;
}
-static PyObject *CF_CFURLCreateData(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFDataRef _rv;
- CFURLRef url;
- CFStringEncoding encoding;
- Boolean escapeWhitespace;
- PyMac_PRECHECK(CFURLCreateData);
- if (!PyArg_ParseTuple(_args, "O&ll",
- CFURLRefObj_Convert, &url,
- &encoding,
- &escapeWhitespace))
- return NULL;
- _rv = CFURLCreateData((CFAllocatorRef)NULL,
- url,
- encoding,
- escapeWhitespace);
- _res = Py_BuildValue("O&",
- CFDataRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFURLCreateWithString(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFURLRef _rv;
- CFStringRef URLString;
- CFURLRef baseURL;
- PyMac_PRECHECK(CFURLCreateWithString);
- if (!PyArg_ParseTuple(_args, "O&O&",
- CFStringRefObj_Convert, &URLString,
- OptionalCFURLRefObj_Convert, &baseURL))
- return NULL;
- _rv = CFURLCreateWithString((CFAllocatorRef)NULL,
- URLString,
- baseURL);
- _res = Py_BuildValue("O&",
- CFURLRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFURLCreateWithFileSystemPath(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFURLRef _rv;
- CFStringRef filePath;
- CFURLPathStyle pathStyle;
- Boolean isDirectory;
- PyMac_PRECHECK(CFURLCreateWithFileSystemPath);
- if (!PyArg_ParseTuple(_args, "O&ll",
- CFStringRefObj_Convert, &filePath,
- &pathStyle,
- &isDirectory))
- return NULL;
- _rv = CFURLCreateWithFileSystemPath((CFAllocatorRef)NULL,
- filePath,
- pathStyle,
- isDirectory);
- _res = Py_BuildValue("O&",
- CFURLRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFURLCreateStringWithFileSystemPath(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFStringRef _rv;
- CFURLRef anURL;
- CFURLPathStyle pathStyle;
- Boolean resolveAgainstBase;
- PyMac_PRECHECK(CFURLCreateStringWithFileSystemPath);
- if (!PyArg_ParseTuple(_args, "O&ll",
- CFURLRefObj_Convert, &anURL,
- &pathStyle,
- &resolveAgainstBase))
- return NULL;
- _rv = CFURLCreateStringWithFileSystemPath((CFAllocatorRef)NULL,
- anURL,
- pathStyle,
- resolveAgainstBase);
- _res = Py_BuildValue("O&",
- CFStringRefObj_New, _rv);
- return _res;
-}
-
-static PyObject *CF_CFURLCreateStringByReplacingPercentEscapes(PyObject *_self, PyObject *_args)
-{
- PyObject *_res = NULL;
- CFStringRef _rv;
- CFStringRef originalString;
- CFStringRef charactersToLeaveEscaped;
- PyMac_PRECHECK(CFURLCreateStringByReplacingPercentEscapes);
- if (!PyArg_ParseTuple(_args, "O&O&",
- CFStringRefObj_Convert, &originalString,
- CFStringRefObj_Convert, &charactersToLeaveEscaped))
- return NULL;
- _rv = CFURLCreateStringByReplacingPercentEscapes((CFAllocatorRef)NULL,
- originalString,
- charactersToLeaveEscaped);
- _res = Py_BuildValue("O&",
- CFStringRefObj_New, _rv);
- return _res;
-}
-
static PyMethodDef CF_methods[] = {
{"CFAllocatorGetTypeID", (PyCFunction)CF_CFAllocatorGetTypeID, 1,
"() -> (CFTypeID _rv)"},
@@ -3079,8 +3050,6 @@ static PyMethodDef CF_methods[] = {
"(CFTypeID theType) -> (CFStringRef _rv)"},
{"CFArrayGetTypeID", (PyCFunction)CF_CFArrayGetTypeID, 1,
"() -> (CFTypeID _rv)"},
- {"CFArrayCreateCopy", (PyCFunction)CF_CFArrayCreateCopy, 1,
- "(CFArrayRef srcArray) -> (CFArrayRef _rv)"},
{"CFArrayCreateMutable", (PyCFunction)CF_CFArrayCreateMutable, 1,
"(CFIndex capacity) -> (CFMutableArrayRef _rv)"},
{"CFArrayCreateMutableCopy", (PyCFunction)CF_CFArrayCreateMutableCopy, 1,
@@ -3091,16 +3060,12 @@ static PyMethodDef CF_methods[] = {
"(Buffer bytes) -> (CFDataRef _rv)"},
{"CFDataCreateWithBytesNoCopy", (PyCFunction)CF_CFDataCreateWithBytesNoCopy, 1,
"(Buffer bytes) -> (CFDataRef _rv)"},
- {"CFDataCreateCopy", (PyCFunction)CF_CFDataCreateCopy, 1,
- "(CFDataRef data) -> (CFDataRef _rv)"},
{"CFDataCreateMutable", (PyCFunction)CF_CFDataCreateMutable, 1,
"(CFIndex capacity) -> (CFMutableDataRef _rv)"},
{"CFDataCreateMutableCopy", (PyCFunction)CF_CFDataCreateMutableCopy, 1,
"(CFIndex capacity, CFDataRef data) -> (CFMutableDataRef _rv)"},
{"CFDictionaryGetTypeID", (PyCFunction)CF_CFDictionaryGetTypeID, 1,
"() -> (CFTypeID _rv)"},
- {"CFDictionaryCreateCopy", (PyCFunction)CF_CFDictionaryCreateCopy, 1,
- "(CFDictionaryRef dict) -> (CFDictionaryRef _rv)"},
{"CFDictionaryCreateMutable", (PyCFunction)CF_CFDictionaryCreateMutable, 1,
"(CFIndex capacity) -> (CFMutableDictionaryRef _rv)"},
{"CFDictionaryCreateMutableCopy", (PyCFunction)CF_CFDictionaryCreateMutableCopy, 1,
@@ -3115,30 +3080,16 @@ static PyMethodDef CF_methods[] = {
"(StringPtr pStr, CFStringEncoding encoding) -> (CFStringRef _rv)"},
{"CFStringCreateWithCStringNoCopy", (PyCFunction)CF_CFStringCreateWithCStringNoCopy, 1,
"(char* cStr, CFStringEncoding encoding) -> (CFStringRef _rv)"},
- {"CFStringCreateWithSubstring", (PyCFunction)CF_CFStringCreateWithSubstring, 1,
- "(CFStringRef str, CFRange range) -> (CFStringRef _rv)"},
- {"CFStringCreateCopy", (PyCFunction)CF_CFStringCreateCopy, 1,
- "(CFStringRef theString) -> (CFStringRef _rv)"},
{"CFStringCreateMutable", (PyCFunction)CF_CFStringCreateMutable, 1,
"(CFIndex maxLength) -> (CFMutableStringRef _rv)"},
{"CFStringCreateMutableCopy", (PyCFunction)CF_CFStringCreateMutableCopy, 1,
"(CFIndex maxLength, CFStringRef theString) -> (CFMutableStringRef _rv)"},
{"CFStringCreateWithBytes", (PyCFunction)CF_CFStringCreateWithBytes, 1,
"(Buffer bytes, CFStringEncoding encoding, Boolean isExternalRepresentation) -> (CFStringRef _rv)"},
- {"CFStringCreateFromExternalRepresentation", (PyCFunction)CF_CFStringCreateFromExternalRepresentation, 1,
- "(CFDataRef data, CFStringEncoding encoding) -> (CFStringRef _rv)"},
- {"CFStringCreateExternalRepresentation", (PyCFunction)CF_CFStringCreateExternalRepresentation, 1,
- "(CFStringRef theString, CFStringEncoding encoding, UInt8 lossByte) -> (CFDataRef _rv)"},
{"CFStringGetSystemEncoding", (PyCFunction)CF_CFStringGetSystemEncoding, 1,
"() -> (CFStringEncoding _rv)"},
{"CFStringGetMaximumSizeForEncoding", (PyCFunction)CF_CFStringGetMaximumSizeForEncoding, 1,
"(CFIndex length, CFStringEncoding encoding) -> (CFIndex _rv)"},
- {"CFStringCreateArrayWithFindResults", (PyCFunction)CF_CFStringCreateArrayWithFindResults, 1,
- "(CFStringRef theString, CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags compareOptions) -> (CFArrayRef _rv)"},
- {"CFStringCreateByCombiningStrings", (PyCFunction)CF_CFStringCreateByCombiningStrings, 1,
- "(CFArrayRef theArray, CFStringRef separatorString) -> (CFStringRef _rv)"},
- {"CFStringCreateArrayBySeparatingStrings", (PyCFunction)CF_CFStringCreateArrayBySeparatingStrings, 1,
- "(CFStringRef theString, CFStringRef separatorString) -> (CFArrayRef _rv)"},
{"CFStringIsEncodingAvailable", (PyCFunction)CF_CFStringIsEncodingAvailable, 1,
"(CFStringEncoding encoding) -> (Boolean _rv)"},
{"CFStringGetNameOfEncoding", (PyCFunction)CF_CFStringGetNameOfEncoding, 1,
@@ -3159,16 +3110,6 @@ static PyMethodDef CF_methods[] = {
"() -> (CFTypeID _rv)"},
{"CFURLCreateWithBytes", (PyCFunction)CF_CFURLCreateWithBytes, 1,
"(Buffer URLBytes, CFStringEncoding encoding, CFURLRef baseURL) -> (CFURLRef _rv)"},
- {"CFURLCreateData", (PyCFunction)CF_CFURLCreateData, 1,
- "(CFURLRef url, CFStringEncoding encoding, Boolean escapeWhitespace) -> (CFDataRef _rv)"},
- {"CFURLCreateWithString", (PyCFunction)CF_CFURLCreateWithString, 1,
- "(CFStringRef URLString, CFURLRef baseURL) -> (CFURLRef _rv)"},
- {"CFURLCreateWithFileSystemPath", (PyCFunction)CF_CFURLCreateWithFileSystemPath, 1,
- "(CFStringRef filePath, CFURLPathStyle pathStyle, Boolean isDirectory) -> (CFURLRef _rv)"},
- {"CFURLCreateStringWithFileSystemPath", (PyCFunction)CF_CFURLCreateStringWithFileSystemPath, 1,
- "(CFURLRef anURL, CFURLPathStyle pathStyle, Boolean resolveAgainstBase) -> (CFStringRef _rv)"},
- {"CFURLCreateStringByReplacingPercentEscapes", (PyCFunction)CF_CFURLCreateStringByReplacingPercentEscapes, 1,
- "(CFStringRef originalString, CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)"},
{NULL, NULL, 0}
};
diff --git a/Mac/Modules/cf/cfscan.py b/Mac/Modules/cf/cfscan.py
index 7941875..b8ccb31 100644
--- a/Mac/Modules/cf/cfscan.py
+++ b/Mac/Modules/cf/cfscan.py
@@ -58,6 +58,12 @@ class MyScanner(Scanner_OSX):
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):
@@ -85,9 +91,7 @@ class MyScanner(Scanner_OSX):
"CFStringGetCharactersPtr",
"CFStringGetCString",
"CFStringGetCharacters",
- # OSX only, to be done
-## "CFURLCreateWithFileSystemPath",
-## "CFURLCreateStringWithFileSystemPath",
+ "CFURLCreateStringWithFileSystemPath", # Gone in later releases
]
def makegreylist(self):
diff --git a/Mac/Modules/cf/cfsupport.py b/Mac/Modules/cf/cfsupport.py
index ebfe717..5da71d5 100644
--- a/Mac/Modules/cf/cfsupport.py
+++ b/Mac/Modules/cf/cfsupport.py
@@ -17,11 +17,38 @@ 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"""
+
+ 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
includestuff = includestuff + """
#ifdef WITHOUT_FRAMEWORKS
-#include <CoreFoundation.h>
+#include <CFBase.h>
+#include <CFArray.h>
+#include <CFData.h>
+#include <CFDictionary.h>
+#include <CFString.h>
+#include <CFURL.h>
#else
#include <CoreFoundation.h>
#endif
@@ -31,6 +58,8 @@ staticforward PyObject *CFTypeRefObj_New(CFTypeRef);
staticforward int CFTypeRefObj_Convert(PyObject *, CFTypeRef *);
staticforward PyObject *CFStringRefObj_New(CFStringRef);
staticforward int CFStringRefObj_Convert(PyObject *, CFStringRef *);
+staticforward PyObject *CFURLRefObj_New(CFURLRef);
+staticforward int CFURLRefObj_Convert(PyObject *, CFURLRef *);
staticforward int CFURLRefObj_Convert(PyObject *, CFURLRef *);