*** Modules/regexmodule.c 1996/09/11 16:25:30 1.1 --- Modules/regexmodule.c 1996/09/11 16:38:18 *************** *** 288,293 **** return re->re_givenpat; } if (strcmp(name, "__members__") == 0) { ! PyObject *list = PyList_New(6); if (list) { PyList_SetItem(list, 0, PyString_FromString("last")); --- 288,323 ---- return re->re_givenpat; } + if (strcmp(name, "found") == 0) { + char *lastok; + if (re->re_lastok == NULL) { + Py_INCREF(Py_None); + return Py_None; + } + lastok=PyString_AsString(re->re_lastok); + return PyString_FromStringAndSize(lastok+re->re_regs.start[0], + re->re_regs.end[0]-re->re_regs.start[0] ); + } + if (strcmp(name, "before") == 0) { + char *lastok; + if (re->re_lastok == NULL) { + Py_INCREF(Py_None); + return Py_None; + } + lastok=PyString_AsString(re->re_lastok); + return PyString_FromStringAndSize(lastok,re->re_regs.start[0]); + } + if (strcmp(name, "after") == 0) { + char *lastok; int lastok_len; + if (re->re_lastok == NULL) { + Py_INCREF(Py_None); + return Py_None; + } + lastok=PyString_AsString(re->re_lastok); + lastok_len=PyString_Size(re->re_lastok); + return PyString_FromStringAndSize(lastok+re->re_regs.end[0], + lastok_len-re->re_regs.end[0]); + } if (strcmp(name, "__members__") == 0) { ! PyObject *list = PyList_New(9); if (list) { PyList_SetItem(list, 0, PyString_FromString("last")); *************** *** 297,300 **** --- 327,333 ---- PyList_SetItem(list, 4, PyString_FromString("realpat")); PyList_SetItem(list, 5, PyString_FromString("givenpat")); + PyList_SetItem(list, 6, PyString_FromString("found")); + PyList_SetItem(list, 7, PyString_FromString("before")); + PyList_SetItem(list, 8, PyString_FromString("after")); if (PyErr_Occurred()) { Py_DECREF(list);