PyTypeObject *IOChannel;
PyTypeObject *PollFD;
+#include "../../../../config.h"
+
+#if PYGOBJECT_FLAGS_SIGNED
+typedef gint pyg_flags_type;
+#else
+typedef guint pyg_flags_type;
+#endif
+
%}
%init %{
/* Map from Glib::IOCondition to GLib.IOCondition. */
%typecheck(SWIG_TYPECHECK_POINTER) Glib::IOCondition {
- gint flags;
+ pyg_flags_type flags;
$1 = pygobject_check($input, &PyGFlags_Type) &&
(pyg_flags_get_value(G_TYPE_IO_CONDITION, $input, &flags) != -1);
}
%typemap(in) Glib::IOCondition {
if (!pygobject_check($input, &PyGFlags_Type))
SWIG_exception(SWIG_TypeError, "Expected GLib.IOCondition value");
- gint flags;
+ pyg_flags_type flags;
if (pyg_flags_get_value(G_TYPE_IO_CONDITION, $input, &flags) == -1)
SWIG_exception(SWIG_TypeError, "Not a valid Glib.IOCondition value");
$1 = (Glib::IOCondition) flags;
SWIG_exception(SWIG_TypeError, "Expected GLib.PollFD");
PyObject *fd_obj = PyObject_GetAttrString($input, "fd");
PyObject *events_obj = PyObject_GetAttrString($input, "events");
- gint flags;
+ pyg_flags_type flags;
pyg_flags_get_value(G_TYPE_IO_CONDITION, events_obj, &flags);
int fd = PyInt_AsLong(fd_obj);
Glib::IOCondition events = (Glib::IOCondition) flags;
# PyGObject is needed for the Python bindings.
PKG_CHECK_MODULES([pygobject], [pygobject-3.0],
[CXXFLAGS="$CXXFLAGS $pygobject_CFLAGS";
- CXXLIBS="$CXXLIBS $pygobject_LIBS"], [BINDINGS_PYTHON="no"])
+ CXXLIBS="$CXXLIBS $pygobject_LIBS";
+ PKG_CHECK_MODULES([pygobject_3_7_91], [pygobject-3.0 >= 3.7.91],
+ [pyg_flags_signed=0], [pyg_flags_signed=1]);
+ AC_DEFINE_UNQUOTED(PYGOBJECT_FLAGS_SIGNED, [$pyg_flags_signed],
+ [Whether last argument to pyg_flags_get_value() is signed])],
+ [BINDINGS_PYTHON="no"])
# The Check unit testing framework is optional. Disable if not found.
PKG_CHECK_MODULES([check], [check >= 0.9.4],