This patch adds wget_wch support to the curses module. It may be contributed
upstream at some point, but the suitability (or lack thereof) has not yet
been determined.
--- Python-3.4.0/Modules/_cursesmodule.c.~1~ 2014-03-16 19:31:31.000000000 -0700
+++ Python-3.4.0/Modules/_cursesmodule.c 2014-03-17 13:44:21.194828659 -0700
@@ -1187,6 +1187,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, "get_wch requires 0 or 2 arguments");
+ return NULL;
+ }
+ if (ct == ERR) {
+ PyErr_SetString(PyCursesError, "get_wch failed");
+ return NULL;
+ }
+ return PyLong_FromLong((long)rtn);
+}
+
+static PyObject *
PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args)
{
int x, y;
@@ -2059,6 +2090,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},
#ifdef HAVE_NCURSESW
{"get_wch", (PyCFunction)PyCursesWindow_Get_WCh, METH_VARARGS},