diff options
author | R David Murray <rdmurray@bitdance.com> | 2013-03-19 20:23:09 (GMT) |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2013-03-19 20:23:09 (GMT) |
commit | f5d7cc239e61e063e7bab783d55deb8e72210674 (patch) | |
tree | c38cd940eb8802126da7f123022f561d2e8e20d8 | |
parent | fcb6d6a3b3bfba67927ced18dd648ba889e14f4c (diff) | |
download | cpython-f5d7cc239e61e063e7bab783d55deb8e72210674.zip cpython-f5d7cc239e61e063e7bab783d55deb8e72210674.tar.gz cpython-f5d7cc239e61e063e7bab783d55deb8e72210674.tar.bz2 |
#8862: Fix curses cleanup with getchar is interrupted by a signal.
I have no idea how one would write a test for this.
Patch by July Tikhonov.
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/_cursesmodule.c | 4 |
2 files changed, 5 insertions, 1 deletions
@@ -233,6 +233,8 @@ Core and Builtins Library ------- +- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal. + - Issue #17443: impalib.IMAP4_stream was using the default unbuffered IO in subprocess, but the imap code assumes buffered IO. In Python2 this worked by accident. IMAP4_stream now explicitly uses buffered IO. diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 5e1afa9..d1dedb0 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -895,7 +895,9 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args) } if (rtn == ERR) { /* getch() returns ERR in nodelay mode */ - PyErr_SetString(PyCursesError, "no input"); + PyErr_CheckSignals(); + if (!PyErr_Occurred()) + PyErr_SetString(PyCursesError, "no input"); return NULL; } else if (rtn<=255) { return Py_BuildValue("C", rtn); |