summaryrefslogtreecommitdiffstats
path: root/pygtk/python27.patch
diff options
context:
space:
mode:
authorpiernov <piernov@piernov.org>2012-05-13 21:25:08 +0200
committerpiernov <piernov@piernov.org>2012-05-13 21:25:08 +0200
commitf35fb119bf993d3454668f50a17334e09b77160b (patch)
tree9f1d840f10e24848f8b94eb9c5c4e811e0984232 /pygtk/python27.patch
parent2814457a550d6a14e6134ac4c06b1f96a92d2061 (diff)
parent933ac25d27eb5fa5f8f983ab8ac8d507e773c044 (diff)
downloadnutyx-pakxe-f35fb119bf993d3454668f50a17334e09b77160b.tar.gz
nutyx-pakxe-f35fb119bf993d3454668f50a17334e09b77160b.tar.bz2
nutyx-pakxe-f35fb119bf993d3454668f50a17334e09b77160b.tar.xz
nutyx-pakxe-f35fb119bf993d3454668f50a17334e09b77160b.zip
Merge branch 'master' of http://kiao.no-ip.info/NuTyX/git/nutyx-pakxe
Diffstat (limited to 'pygtk/python27.patch')
-rw-r--r--pygtk/python27.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/pygtk/python27.patch b/pygtk/python27.patch
new file mode 100644
index 000000000..9bbe2b5ae
--- /dev/null
+++ b/pygtk/python27.patch
@@ -0,0 +1,50 @@
+diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c
+index c0e1493..aa8cf10 100644
+--- a/gtk/gtkmodule.c
++++ b/gtk/gtkmodule.c
+@@ -227,8 +227,12 @@ init_gtk(void)
+ pygtk_add_stock_items(d);
+
+ /* extension API */
+- PyDict_SetItemString(d, "_PyGtk_API",
+- o=PyCObject_FromVoidPtr(&functions, NULL));
++#if PY_VERSION_HEX >= 0x02070000
++ o = PyCapsule_New(&functions, "gtk._gtk._PyGtk_API", NULL);
++#else
++ o = PyCObject_FromVoidPtr(&functions, NULL);
++#endif
++ PyDict_SetItemString(d, "_PyGtk_API", o);
+ Py_DECREF(o);
+
+ PyGtkDeprecationWarning = PyErr_NewException("gtk.GtkDeprecationWarning",
+diff --git a/gtk/pygtk.h b/gtk/pygtk.h
+index 573c3b9..e4c680f 100644
+--- a/gtk/pygtk.h
++++ b/gtk/pygtk.h
+@@ -60,6 +60,18 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
+
+
+ /* a function to initialise the pygtk functions */
++
++/* Python 2.7 introduced the PyCapsule API and deprecated the CObject API */
++#if PY_VERSION_HEX >= 0x02070000
++#define init_pygtk() G_STMT_START { \
++ void *capsule = PyCapsule_Import("gtk._gtk._PyGtk_API", 0); \
++ if (!capsule) { \
++ return; \
++ } \
++ _PyGtk_API = (struct _PyGtk_FunctionStruct*)capsule; \
++} G_STMT_END
++#else /* PY_VERSION_HEX */
++/* Python 2.6 and earlier use the CObject API */
+ #define init_pygtk() G_STMT_START { \
+ PyObject *pygtk = PyImport_ImportModule("gtk"); \
+ if (pygtk != NULL) { \
+@@ -79,6 +91,7 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
+ return; \
+ } \
+ } G_STMT_END
++#endif /* PY_VERSION_HEX */
+
+ #endif
+