@@ -1706,19 +1706,6 @@ _curses_window_getch_impl(PyCursesWindowObject *self, int group_right_1,
17061706 return PyLong_FromLong (rtn );
17071707}
17081708
1709- static PyObject *
1710- curses_check_signals_on_input_error (PyCursesWindowObject * self ,
1711- const char * curses_funcname ,
1712- const char * python_funcname )
1713- {
1714- if (!PyErr_CheckSignals () && !PyErr_Occurred ()) {
1715- cursesmodule_state * state = get_cursesmodule_state_by_win (self );
1716- PyErr_Format (state -> error , "%s() (called by %s()): no input" ,
1717- curses_funcname , python_funcname );
1718- }
1719- return NULL ;
1720- }
1721-
17221709/*[clinic input]
17231710_curses.window.getkey
17241711
@@ -1754,9 +1741,14 @@ _curses_window_getkey_impl(PyCursesWindowObject *self, int group_right_1,
17541741 Py_END_ALLOW_THREADS
17551742
17561743 if (rtn == ERR ) {
1757- /* wgetch() returns ERR in nodelay mode */
1758- const char * funcname = group_right_1 ? "mvwgetch" : "wgetch" ;
1759- return curses_check_signals_on_input_error (self , funcname , "getkey" );
1744+ /* getch() returns ERR in nodelay mode */
1745+ PyErr_CheckSignals ();
1746+ if (!PyErr_Occurred ()) {
1747+ cursesmodule_state * state = get_cursesmodule_state_by_win (self );
1748+ const char * funcname = group_right_1 ? "mvwgetch" : "wgetch" ;
1749+ PyErr_Format (state -> error , "getkey(): %s(): no input" , funcname );
1750+ }
1751+ return NULL ;
17601752 } else if (rtn <= 255 ) {
17611753#ifdef NCURSES_VERSION_MAJOR
17621754#if NCURSES_VERSION_MAJOR * 100 + NCURSES_VERSION_MINOR <= 507
@@ -1809,9 +1801,14 @@ _curses_window_get_wch_impl(PyCursesWindowObject *self, int group_right_1,
18091801 Py_END_ALLOW_THREADS
18101802
18111803 if (ct == ERR ) {
1812- /* wget_wch() returns ERR in nodelay mode */
1804+ if (PyErr_CheckSignals ())
1805+ return NULL ;
1806+
1807+ /* get_wch() returns ERR in nodelay mode */
1808+ cursesmodule_state * state = get_cursesmodule_state_by_win (self );
18131809 const char * funcname = group_right_1 ? "mvwget_wch" : "wget_wch" ;
1814- return curses_check_signals_on_input_error (self , funcname , "get_wch" );
1810+ PyErr_Format (state -> error , "get_wch(): %s(): no input" , funcname );
1811+ return NULL ;
18151812 }
18161813 if (ct == KEY_CODE_YES )
18171814 return PyLong_FromLong (rtn );
0 commit comments