mirror of https://github.com/python/cpython
Merged revisions 75066 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r75066 | andrew.kuchling | 2009-09-25 17:23:54 -0500 (Fri, 25 Sep 2009) | 4 lines #6243: fix segfault when keyname() returns a NULL pointer. Bug noted by Trundle, patched by Trundle and Jerry Chen. ........
This commit is contained in:
parent
0df35a93a2
commit
7e2ef573ed
|
@ -259,6 +259,10 @@ def test_resize_term(stdscr):
|
|||
if curses.LINES != lines - 1 or curses.COLS != cols + 1:
|
||||
raise RuntimeError("Expected resizeterm to update LINES and COLS")
|
||||
|
||||
def test_issue6243(stdscr):
|
||||
curses.ungetch(1025)
|
||||
stdscr.getkey()
|
||||
|
||||
def main(stdscr):
|
||||
curses.savetty()
|
||||
try:
|
||||
|
@ -266,6 +270,7 @@ def main(stdscr):
|
|||
window_funcs(stdscr)
|
||||
test_userptr_without_set(stdscr)
|
||||
test_resize_term(stdscr)
|
||||
test_issue6243(stdscr)
|
||||
finally:
|
||||
curses.resetty()
|
||||
|
||||
|
|
|
@ -890,14 +890,17 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args)
|
|||
/* getch() returns ERR in nodelay mode */
|
||||
PyErr_SetString(PyCursesError, "no input");
|
||||
return NULL;
|
||||
} else if (rtn<=255)
|
||||
} else if (rtn<=255) {
|
||||
return Py_BuildValue("C", rtn);
|
||||
else
|
||||
} else {
|
||||
const char *knp;
|
||||
#if defined(__NetBSD__)
|
||||
return PyUnicode_FromString(unctrl(rtn));
|
||||
knp = unctrl(rtn);
|
||||
#else
|
||||
return PyUnicode_FromString((const char *)keyname(rtn));
|
||||
knp = keyname(rtn);
|
||||
#endif
|
||||
return PyUnicode_FromString((knp == NULL) ? "" : knp);
|
||||
}
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
|
|
Loading…
Reference in New Issue