diff options
author | Steve Dower <steve.dower@microsoft.com> | 2015-04-15 22:06:05 (GMT) |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2015-04-15 22:06:05 (GMT) |
commit | d2bc389e550464e3f71ec60071880335e8f9b6c6 (patch) | |
tree | ff1e0fd7f6231e3ccf09ca699de88618abd2ddf7 | |
parent | 9abe04975a1948f85c16896dcd68e7cf26bb593e (diff) | |
download | cpython-d2bc389e550464e3f71ec60071880335e8f9b6c6.zip cpython-d2bc389e550464e3f71ec60071880335e8f9b6c6.tar.gz cpython-d2bc389e550464e3f71ec60071880335e8f9b6c6.tar.bz2 |
Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari
-rw-r--r-- | Doc/library/curses.rst | 7 | ||||
-rw-r--r-- | Doc/whatsnew/3.5.rst | 5 | ||||
-rw-r--r-- | Lib/test/test_curses.py | 7 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/_cursesmodule.c | 10 |
5 files changed, 31 insertions, 0 deletions
diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst index f3e60b4..e8dfd83 100644 --- a/Doc/library/curses.rst +++ b/Doc/library/curses.rst @@ -599,6 +599,13 @@ The module :mod:`curses` defines the following functions: Only one *ch* can be pushed before :meth:`getch` is called. +.. function:: update_lines_cols() + + Update :envvar:`LINES` and :envvar:`COLS`. Useful for detecting manual screen resize. + + .. versionadded:: 3.5 + + .. function:: unget_wch(ch) Push *ch* so the next :meth:`get_wch` will return it. diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index 5d010bf..2960979 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -289,6 +289,11 @@ contextlib don't provide any options to redirect it. (Contributed by Berker Peksag in :issue:`22389`.) +curses +------ +* The new :func:`curses.update_lines_cols` function updates the variables + :envvar:`curses.LINES` and :envvar:`curses.COLS`. + difflib ------- diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index bd7d4fc..2747041 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -370,6 +370,13 @@ class TestCurses(unittest.TestCase): offset = human_readable_signature.find("[y, x,]") assert offset >= 0, "" + def test_update_lines_cols(self): + # this doesn't actually test that LINES and COLS are updated, + # because we can't automate changing them. See Issue #4254 for + # a manual test script. We can only test that the function + # can be called. + curses.update_lines_cols() + if __name__ == '__main__': unittest.main() @@ -36,6 +36,8 @@ Core and Builtins Library ------- +- Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari + - Issue 19933: Provide default argument for ndigits in round. Patch by Vajrasky Kok. diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 54c724b..d64bdc7 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -2866,6 +2866,13 @@ update_lines_cols(void) Py_DECREF(m); return 1; } + +static PyObject * +PyCurses_update_lines_cols(PyObject *self) +{ + return PyLong_FromLong((long) update_lines_cols()); +} + #endif #ifdef HAVE_CURSES_RESIZETERM @@ -3268,6 +3275,9 @@ static PyMethodDef PyCurses_methods[] = { {"typeahead", (PyCFunction)PyCurses_TypeAhead, METH_VARARGS}, {"unctrl", (PyCFunction)PyCurses_UnCtrl, METH_VARARGS}, {"ungetch", (PyCFunction)PyCurses_UngetCh, METH_VARARGS}, +#if defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM) + {"update_lines_cols", (PyCFunction)PyCurses_update_lines_cols, METH_NOARGS}, +#endif #ifdef HAVE_NCURSESW {"unget_wch", (PyCFunction)PyCurses_Unget_Wch, METH_VARARGS}, #endif |