mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Close #6755: Add get_wch() method to curses.window class
Patch by Iñigo Serna.
This commit is contained in:
parent
d33344a030
commit
a7878b77dc
5 changed files with 53 additions and 0 deletions
|
@ -906,6 +906,38 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args)
|
|||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
/* get_wch() returns ERR in nodelay mode */
|
||||
PyErr_SetString(PyCursesError, "no input");
|
||||
return NULL;
|
||||
}
|
||||
return PyLong_FromLong(rtn);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args)
|
||||
{
|
||||
|
@ -1604,6 +1636,7 @@ static PyMethodDef PyCursesWindow_Methods[] = {
|
|||
{"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS},
|
||||
{"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS},
|
||||
{"getkey", (PyCFunction)PyCursesWindow_GetKey, METH_VARARGS},
|
||||
{"get_wch", (PyCFunction)PyCursesWindow_Get_WCh, METH_VARARGS},
|
||||
{"getmaxyx", (PyCFunction)PyCursesWindow_getmaxyx, METH_NOARGS},
|
||||
{"getparyx", (PyCFunction)PyCursesWindow_getparyx, METH_NOARGS},
|
||||
{"getstr", (PyCFunction)PyCursesWindow_GetStr, METH_VARARGS},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue