diff options
author | Matt Wilson <msw@redhat.com> | 1999-08-25 03:11:06 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 1999-08-25 03:11:06 +0000 |
commit | 23bbde543a970005930a7ea558e1e80992dc8e28 (patch) | |
tree | f7e49cde63fa04cc3eff58438fd8e96cdfffdb6b /rpmmodule | |
parent | f55e0ebe5e6c2646c1697c19bbc9bd3f47b7a70a (diff) | |
download | anaconda-23bbde543a970005930a7ea558e1e80992dc8e28.tar.gz anaconda-23bbde543a970005930a7ea558e1e80992dc8e28.tar.xz anaconda-23bbde543a970005930a7ea558e1e80992dc8e28.zip |
hack for preston
Diffstat (limited to 'rpmmodule')
-rw-r--r-- | rpmmodule/rpmmodule.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/rpmmodule/rpmmodule.c b/rpmmodule/rpmmodule.c index 716ab9553..10dc7b5f6 100644 --- a/rpmmodule/rpmmodule.c +++ b/rpmmodule/rpmmodule.c @@ -45,6 +45,7 @@ static PyObject * findUpgradeSet(PyObject * self, PyObject * args); static PyObject * errorSetCallback (PyObject * self, PyObject * args); static PyObject * errorString (PyObject * self, PyObject * args); static PyObject * versionCompare (PyObject * self, PyObject * args); +static PyObject * labelCompare (PyObject * self, PyObject * args); static PyObject * rebuildDB (PyObject * self, PyObject * args); static PyObject * rpmtransCreate(PyObject * self, PyObject * args); @@ -72,6 +73,7 @@ static PyMethodDef rpmModuleMethods[] = { { "errorSetCallback", (PyCFunction) errorSetCallback, METH_VARARGS, NULL }, { "errorString", (PyCFunction) errorString, METH_VARARGS, NULL }, { "versionCompare", (PyCFunction) versionCompare, METH_VARARGS, NULL }, + { "labelCompare", (PyCFunction) labelCompare, METH_VARARGS, NULL }, { NULL } } ; @@ -587,6 +589,35 @@ static PyObject * versionCompare (PyObject * self, PyObject * args) { return Py_BuildValue("i", rpmVersionCompare(h1->h, h2->h)); } +static PyObject * labelCompare (PyObject * self, PyObject * args) { + char *v1, *r1, *e1, *v2, *r2, *e2; + int rc; + + if (!PyArg_ParseTuple(args, "(zzz)(zzz)", + &e1, &v1, &r1, + &e2, &v2, &r2)) return NULL; + + if (e1 && !e2) + return Py_BuildValue("i", 1); + else if (!e1 && e2) + return Py_BuildValue("i", -1); + else if (e1 && e2) { + int ep1, ep2; + ep1 = atoi (e1); + ep2 = atoi (e2); + if (ep1 < ep2) + return Py_BuildValue("i", -1); + else if (ep1 > ep2) + return Py_BuildValue("i", 1); + } + + rc = rpmvercmp(v1, v2); + if (rc) + return Py_BuildValue("i", rc); + + return Py_BuildValue("i", rpmvercmp(r1, r2)); +} + static PyObject * rpmHeaderFromPackage(PyObject * self, PyObject * args) { hdrObject * h; Header header; |