[Python-checkins] cpython (3.2): #8862: Fix curses cleanup with getchar is interrupted by a signal.

r.david.murray python-checkins at python.org
Tue Mar 19 21:28:00 CET 2013


http://hg.python.org/cpython/rev/8a08607abf32
changeset: 82769:8a08607abf32
branch: 3.2
parent: 82761:c5aacf9d1cdc
user: R David Murray <rdmurray at bitdance.com>
date: Tue Mar 19 16:23:09 2013 -0400
summary:
 #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.
files:
 Misc/NEWS | 2 ++
 Modules/_cursesmodule.c | 4 +++-
 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -233,6 +233,8 @@
 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
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -895,7 +895,9 @@
 }
 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);
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /