[pywin32-checkins] pywin32/win32/src PySID.cpp, 1.15, 1.16 PySecurityObjects.h, 1.14, 1.15
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Mark H. <mha...@us...> - 2009-01-25 03:16:41
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31534/win32/src Modified Files: PySID.cpp PySecurityObjects.h Log Message: Give PySID objects rich comparison support for py3k Index: PySID.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PySID.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** PySID.cpp 11 Dec 2008 00:25:40 -0000 1.15 --- PySID.cpp 25 Jan 2009 03:16:35 -0000 1.16 *************** *** 261,265 **** 0, /* tp_traverse */ 0, /* tp_clear */ ! 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ --- 261,265 ---- 0, /* tp_traverse */ 0, /* tp_clear */ ! PySID::richcompareFunc, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ *************** *** 314,317 **** --- 314,336 ---- } + PyObject *PySID::richcompare(PyObject *other, int op) + { + BOOL e; + if (PySID_Check(other)) + e=compare((PyHANDLE *)other)==0; + else + e=FALSE; + PyObject *ret; + if (op==Py_EQ) + ret = e ? Py_True : Py_False; + else if (op==Py_NE) + ret = !e ? Py_True : Py_False; + else { + PyErr_SetString(PyExc_TypeError, "SIDs only compare equal or not equal"); + ret = NULL; + } + Py_XINCREF(ret); + return ret; + } // @pymethod int|PySID|__cmp__|Used when objects are compared. *************** *** 322,325 **** --- 341,349 ---- } + PyObject *PySID::richcompareFunc(PyObject *ob1, PyObject *ob2, int op) + { + return ((PySID *)ob1)->richcompare(ob2, op); + } + /*static*/ void PySID::deallocFunc(PyObject *ob) { Index: PySecurityObjects.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PySecurityObjects.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** PySecurityObjects.h 11 Dec 2008 00:25:40 -0000 1.14 --- PySecurityObjects.h 25 Jan 2009 03:16:35 -0000 1.15 *************** *** 102,108 **** --- 102,110 ---- /* Python support */ int compare(PyObject *ob); + PyObject *richcompare(PyObject *other, int op); static void deallocFunc(PyObject *ob); static int compareFunc(PyObject *ob1, PyObject *ob2); + static PyObject *richcompareFunc(PyObject *ob1, PyObject *ob2, int op); static PyObject *strFunc(PyObject *ob); |