X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/cfb291f03e0882cba9037be2a2756a6af41fb76a..4ea7701c90927b214706fb8a6406a764378753ae:/pyke/pyke.c diff --git a/pyke/pyke.c b/pyke/pyke.c index cef4f82..03f1c1f 100644 --- a/pyke/pyke.c +++ b/pyke/pyke.c @@ -46,16 +46,16 @@ PyObject *getbool(int b) int convulong(PyObject *o, void *pp) { - long i; unsigned long *p = pp; PyObject *t; if (!o) VALERR("can't delete"); if (PyInt_Check(o)) { - i = PyInt_AS_LONG(o); + long i = PyInt_AS_LONG(o); if (i < 0) VALERR("must be nonnegative"); *p = i; - } else { + } else + { if ((t = PyNumber_Long(o)) == 0) goto end; *p = PyLong_AsUnsignedLong(t); Py_DECREF(t); @@ -128,6 +128,22 @@ PyObject *abstract_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw) return (0); } +PyObject *enrich_compare(int op, int cmp) +{ + int r = -1; + + switch (op) { + case Py_LT: r = cmp < 0; break; + case Py_LE: r = cmp <= 0; break; + case Py_EQ: r = cmp == 0; break; + case Py_NE: r = cmp != 0; break; + case Py_GE: r = cmp >= 0; break; + case Py_GT: r = cmp > 0; break; + default: assert(0); + } + return (getbool(r)); +} + /*----- Saving and restoring exceptions ----------------------------------*/ void report_lost_exception_v(struct excinfo *exc,