summaryrefslogtreecommitdiffstats
path: root/rpmmodule
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>1999-08-25 03:11:06 +0000
committerMatt Wilson <msw@redhat.com>1999-08-25 03:11:06 +0000
commit23bbde543a970005930a7ea558e1e80992dc8e28 (patch)
treef7e49cde63fa04cc3eff58438fd8e96cdfffdb6b /rpmmodule
parentf55e0ebe5e6c2646c1697c19bbc9bd3f47b7a70a (diff)
downloadanaconda-23bbde543a970005930a7ea558e1e80992dc8e28.tar.gz
anaconda-23bbde543a970005930a7ea558e1e80992dc8e28.tar.xz
anaconda-23bbde543a970005930a7ea558e1e80992dc8e28.zip
hack for preston
Diffstat (limited to 'rpmmodule')
-rw-r--r--rpmmodule/rpmmodule.c31
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;