summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <johan@src.gnome.org>2006-09-04 23:52:13 +0000
committerJohan Dahlin <johan@src.gnome.org>2006-09-04 23:52:13 +0000
commitefd627d6486f9fb5d44e08d90180ac2d919c5cda (patch)
tree8c25f869fb2075d61695e70467fd94be0b603b67
parent4c30f3dc12ca9497ac0d23f3e85ca175c3fe13b4 (diff)
downloadpygobject-efd627d6486f9fb5d44e08d90180ac2d919c5cda.tar.gz
Improve the version checkPYGOBJECT_2_12_1
-rw-r--r--ChangeLog4
-rw-r--r--NEWS3
-rw-r--r--gobject/pygobject.h49
3 files changed, 32 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index cd0b3466..881f96e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
+=== 2.12.1 ===
2006-09-04 Johan Dahlin <jdahlin@async.com.br>
+ * gobject/pygobject.h (_PYGOBJECT_H_): Corrected version check,
+ (Sebastian Dröge, #354364)
+
* configure.ac: Post release version bump
=== 2.12.0 ===
diff --git a/NEWS b/NEWS
index aaf6b232..6932ccad 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+2.12.1 4-september-2006
+ - Corrected version check (Sebastian Dröge, #354364)
+
2.12.0 4-september-2006
- Install the html files even when using --disable-docs (#353159, Johan,
Matthias Clasen)
diff --git a/gobject/pygobject.h b/gobject/pygobject.h
index ce4ee00d..dadfe76b 100644
--- a/gobject/pygobject.h
+++ b/gobject/pygobject.h
@@ -293,30 +293,31 @@ struct _PyGObject_Functions *_PyGObject_API;
} \
} G_STMT_END
-#define init_pygobject_check(major, minor, micro) G_STMT_START { \
- init_pygobject(); \
- PyObject *gobject = PyImport_ImportModule("gobject"); \
- PyObject *mdict = PyModule_GetDict(gobject); \
- PyObject *version = PyDict_GetItemString(mdict, "pygobject_version"); \
- int found_major, found_minor, found_micro; \
- if (!version) \
- version = PyDict_GetItemString(mdict, "pygtk_version"); \
- if (!version) { \
- PyErr_SetString(PyExc_ImportError, \
- "PyGObject version too old"); \
- return; \
- } \
- if (!PyArg_ParseTuple(version, "iii", \
- &found_major, &found_minor, &found_micro)) \
- return; \
- if (major > found_major || minor > found_minor || \
- micro > found_micro) { \
- PyErr_Format(PyExc_ImportError, \
- "PyGObject version too old, %d.%d.%d is required, " \
- "found %d.%d.%d.", major, minor, micro, \
- found_major, found_minor, found_micro); \
- return; \
- } \
+#define init_pygobject_check(req_major, req_minor, req_micro) G_STMT_START { \
+ init_pygobject(); \
+ PyObject *gobject = PyImport_ImportModule("gobject"); \
+ PyObject *mdict = PyModule_GetDict(gobject); \
+ PyObject *version = PyDict_GetItemString(mdict, "pygobject_version"); \
+ int found_major, found_minor, found_micro; \
+ if (!version) \
+ version = PyDict_GetItemString(mdict, "pygtk_version"); \
+ if (!version) { \
+ PyErr_SetString(PyExc_ImportError, \
+ "PyGObject version too old"); \
+ return; \
+ } \
+ if (!PyArg_ParseTuple(version, "iii", \
+ &found_major, &found_minor, &found_micro)) \
+ return; \
+ if (req_major != found_major || \
+ req_minor > found_minor || \
+ req_minor == found_minor && req_micro > found_micro) { \
+ PyErr_Format(PyExc_ImportError, \
+ "PyGObject version mismatch, %d.%d.%d is required, " \
+ "found %d.%d.%d.", req_major, req_minor, req_micro, \
+ found_major, found_minor, found_micro); \
+ return; \
+ } \
} G_STMT_END
#endif /* !_INSIDE_PYGOBJECT_ */