summaryrefslogtreecommitdiff
path: root/data/uicaboodle.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/uicaboodle.py')
-rw-r--r--data/uicaboodle.py/_metadata/version2
-rw-r--r--data/uicaboodle.py/uicaboodle.m36
2 files changed, 30 insertions, 8 deletions
diff --git a/data/uicaboodle.py/_metadata/version b/data/uicaboodle.py/_metadata/version
index 14fde4785..6fd80a11c 100644
--- a/data/uicaboodle.py/_metadata/version
+++ b/data/uicaboodle.py/_metadata/version
@@ -1 +1 @@
-1.0.2307
+1.0.2491
diff --git a/data/uicaboodle.py/uicaboodle.m b/data/uicaboodle.py/uicaboodle.m
index aa219ec52..d40750cf0 100644
--- a/data/uicaboodle.py/uicaboodle.m
+++ b/data/uicaboodle.py/uicaboodle.m
@@ -21,19 +21,32 @@ static PyObject* objc_UIApplicationMain(
int res = -1;
PyObject *arga;
- PyObject *_class;
+ PyObject *_class = NULL;
+
+#ifdef __OBJC2__
+ PyObject *principal;
+ PyObject *delegate;
+#endif
_assert(PyObjC_API != NULL);
_assert(args != NULL);
- /* XXX: correctly parse __OBJC2__ condition */
- if (!PyArg_ParseTuple(args, "OO", &arga, &_class)) {
- PyErr_SetString(PyExc_TypeError, "Invalid Arguments");
+ if (PyArg_ParseTuple(args, "OO", &arga, &_class)) {
+ if (_class == NULL) {
+ PyErr_SetString(PyExc_TypeError, "UIApplicationMain: null class");
+ return NULL;
+ }
+ }
+#ifdef __OBJC2__
+ else if (!PyArg_ParseTuple(args, "OOO", &arga, &principal, &delegate)) {
+ }
+#endif
+ else {
+ PyErr_SetString(PyExc_TypeError, "Invalid Arguments");
return NULL;
}
_assert(arga != NULL);
- _assert(_class != NULL);
argc = PySequence_Size(arga);
argv = calloc(argc + 1, sizeof(char *));
@@ -64,9 +77,18 @@ static PyObject* objc_UIApplicationMain(
PyObjC_DURING
#ifdef __OBJC2__
- res = UIApplicationMain(argc, argv, nil, [NSString stringWithUTF8String:class_getName(PyObjC_API->cls_get_class(_class))]);
+ if (_class == NULL)
+ res = UIApplicationMain(argc, argv,
+ /* XXX: do I have to do these null checks? */
+ principal == NULL ? nil : PyObjCObject_GetObject(principal),
+ delegate == NULL ? nil : PyObjCObject_GetObject(delegate)
+ );
+ else {
+ NSString *name = [NSString stringWithUTF8String:class_getName(PyObjCClass_GetClass(_class))];
+ res = UIApplicationMain(argc, argv, name, name);
+ }
#else
- res = UIApplicationMain(argc, argv, PyObjC_API->cls_get_class(_class));
+ res = UIApplicationMain(argc, argv, PyObjCClass_GetClass(_class));
#endif
PyObjC_HANDLER
PyObjCErr_FromObjC(localException);