mirror of
https://github.com/python/cpython.git
synced 2025-12-04 16:43:27 +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
|
|
@ -846,6 +846,14 @@ the following methods:
|
||||||
until a key is pressed.
|
until a key is pressed.
|
||||||
|
|
||||||
|
|
||||||
|
.. method:: window.get_wch([y, x])
|
||||||
|
|
||||||
|
Get a wide character. Like :meth:`getch`, but the integer returned is the
|
||||||
|
Unicode code point for the key pressed, so it can be passed to :func:`chr`.
|
||||||
|
|
||||||
|
.. versionadded:: 3.3
|
||||||
|
|
||||||
|
|
||||||
.. method:: window.getkey([y, x])
|
.. method:: window.getkey([y, x])
|
||||||
|
|
||||||
Get a character, returning a string instead of an integer, as :meth:`getch`
|
Get a character, returning a string instead of an integer, as :meth:`getch`
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,14 @@ versions.
|
||||||
|
|
||||||
(:issue:`12100`)
|
(:issue:`12100`)
|
||||||
|
|
||||||
|
curses
|
||||||
|
------
|
||||||
|
|
||||||
|
The :class:`curses.window` class has a new :class:`~curses.window.get_wch`
|
||||||
|
method to a wide character. Patch by Iñigo Serna.
|
||||||
|
|
||||||
|
(:issue:`6755`)
|
||||||
|
|
||||||
faulthandler
|
faulthandler
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -851,6 +851,7 @@ Nick Seidenman
|
||||||
Yury Selivanov
|
Yury Selivanov
|
||||||
Fred Sells
|
Fred Sells
|
||||||
Jiwon Seo
|
Jiwon Seo
|
||||||
|
Iñigo Serna
|
||||||
Roger D. Serwy
|
Roger D. Serwy
|
||||||
Jerry Seutter
|
Jerry Seutter
|
||||||
Denis Severson
|
Denis Severson
|
||||||
|
|
|
||||||
|
|
@ -225,6 +225,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #6755: Add get_wch() method to curses.window class. Patch by Iñigo
|
||||||
|
Serna.
|
||||||
|
|
||||||
- Add cgi.closelog() function to close the log file.
|
- Add cgi.closelog() function to close the log file.
|
||||||
|
|
||||||
- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
|
- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
|
||||||
|
|
|
||||||
|
|
@ -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 *
|
static PyObject *
|
||||||
PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args)
|
PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
|
|
@ -1604,6 +1636,7 @@ static PyMethodDef PyCursesWindow_Methods[] = {
|
||||||
{"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS},
|
{"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS},
|
||||||
{"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS},
|
{"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS},
|
||||||
{"getkey", (PyCFunction)PyCursesWindow_GetKey, METH_VARARGS},
|
{"getkey", (PyCFunction)PyCursesWindow_GetKey, METH_VARARGS},
|
||||||
|
{"get_wch", (PyCFunction)PyCursesWindow_Get_WCh, METH_VARARGS},
|
||||||
{"getmaxyx", (PyCFunction)PyCursesWindow_getmaxyx, METH_NOARGS},
|
{"getmaxyx", (PyCFunction)PyCursesWindow_getmaxyx, METH_NOARGS},
|
||||||
{"getparyx", (PyCFunction)PyCursesWindow_getparyx, METH_NOARGS},
|
{"getparyx", (PyCFunction)PyCursesWindow_getparyx, METH_NOARGS},
|
||||||
{"getstr", (PyCFunction)PyCursesWindow_GetStr, METH_VARARGS},
|
{"getstr", (PyCFunction)PyCursesWindow_GetStr, METH_VARARGS},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue