--- _cursesmodule.c.orig 2009-08-13 11:15:16.000000000 +0200 +++ _cursesmodule.c 2009-08-21 14:13:41.000000000 +0200 @@ -864,6 +864,37 @@ } static PyObject * +PyCursesWindow_Get_WCh(PyCursesWindowObject *self, PyObject *args) +{ + int x, y; + int ct; + wint_t rtn; + + switch (PyTuple_Size(args)) { + case 0: + Py_BEGIN_ALLOW_THREADS + ct = wget_wch(self->win,&rtn); + Py_END_ALLOW_THREADS + break; + case 2: + if (!PyArg_ParseTuple(args,"ii;y,x",&y,&x)) + return NULL; + Py_BEGIN_ALLOW_THREADS + ct = mvwget_wch(self->win,y,x,&rtn); + Py_END_ALLOW_THREADS + break; + default: + PyErr_SetString(PyExc_TypeError, "getch requires 0 or 2 arguments"); + return NULL; + } + if (ct == ERR) { + PyErr_SetString(PyCursesError, "get_wch failed"); + return NULL; + } + return PyInt_FromLong((long)rtn); +} + +static PyObject * PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args) { int x, y; @@ -1595,6 +1626,7 @@ {"getbegyx", (PyCFunction)PyCursesWindow_getbegyx, METH_NOARGS}, {"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS}, {"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS}, + {"get_wch", (PyCFunction)PyCursesWindow_Get_WCh, METH_VARARGS}, {"getkey", (PyCFunction)PyCursesWindow_GetKey, METH_VARARGS}, {"getmaxyx", (PyCFunction)PyCursesWindow_getmaxyx, METH_NOARGS}, {"getparyx", (PyCFunction)PyCursesWindow_getparyx, METH_NOARGS},