wok diff pygtk/stuff/python27.patch @ rev 21898

updated sed (4.4 -> 4.7)
author Hans-G?nter Theisgen
date Thu Oct 03 20:17:44 2019 +0100 (2019-10-03)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/pygtk/stuff/python27.patch	Thu Oct 03 20:17:44 2019 +0100
     1.3 @@ -0,0 +1,50 @@
     1.4 +diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c
     1.5 +index c0e1493..aa8cf10 100644
     1.6 +--- a/gtk/gtkmodule.c
     1.7 ++++ b/gtk/gtkmodule.c
     1.8 +@@ -227,8 +227,12 @@ init_gtk(void)
     1.9 +     pygtk_add_stock_items(d);
    1.10 +     
    1.11 +     /* extension API */
    1.12 +-    PyDict_SetItemString(d, "_PyGtk_API",
    1.13 +-			 o=PyCObject_FromVoidPtr(&functions, NULL));
    1.14 ++#if PY_VERSION_HEX >= 0x02070000
    1.15 ++    o = PyCapsule_New(&functions, "gtk._gtk._PyGtk_API", NULL);
    1.16 ++#else
    1.17 ++    o = PyCObject_FromVoidPtr(&functions, NULL);
    1.18 ++#endif
    1.19 ++    PyDict_SetItemString(d, "_PyGtk_API", o);
    1.20 +     Py_DECREF(o);
    1.21 + 	
    1.22 +     PyGtkDeprecationWarning = PyErr_NewException("gtk.GtkDeprecationWarning",
    1.23 +diff --git a/gtk/pygtk.h b/gtk/pygtk.h
    1.24 +index 573c3b9..e4c680f 100644
    1.25 +--- a/gtk/pygtk.h
    1.26 ++++ b/gtk/pygtk.h
    1.27 +@@ -60,6 +60,18 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
    1.28 + 
    1.29 + 
    1.30 + /* a function to initialise the pygtk functions */
    1.31 ++
    1.32 ++/* Python 2.7 introduced the PyCapsule API and deprecated the CObject API */
    1.33 ++#if PY_VERSION_HEX >= 0x02070000
    1.34 ++#define init_pygtk() G_STMT_START { \
    1.35 ++    void *capsule = PyCapsule_Import("gtk._gtk._PyGtk_API", 0); \
    1.36 ++    if (!capsule) { \
    1.37 ++        return; \
    1.38 ++    } \
    1.39 ++    _PyGtk_API = (struct _PyGtk_FunctionStruct*)capsule; \
    1.40 ++} G_STMT_END
    1.41 ++#else /* PY_VERSION_HEX */
    1.42 ++/* Python 2.6 and earlier use the CObject API */
    1.43 + #define init_pygtk() G_STMT_START { \
    1.44 +     PyObject *pygtk = PyImport_ImportModule("gtk"); \
    1.45 +     if (pygtk != NULL) { \
    1.46 +@@ -79,6 +91,7 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
    1.47 +         return; \
    1.48 +     } \
    1.49 + } G_STMT_END
    1.50 ++#endif /* PY_VERSION_HEX */
    1.51 + 
    1.52 + #endif
    1.53 +