From: Neal Norwitz Date: Tue, 10 Jan 2006 07:08:06 +0000 (+0000) Subject: Backport: X-Git-Tag: v2.4.3c1~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=44d52e239359d22e86c457d4e9b2a47620f37eaf;p=thirdparty%2FPython%2Fcpython.git Backport: SF bug #1400822, Extended version of _curses over{lay,write} does not work Fix signatures to conform to doc (also fixed ungetmouse()). --- diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index 6f843ad60002..419d8fc280fa 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -5,7 +5,8 @@ # does call every method and function. # # Functions not tested: {def,reset}_{shell,prog}_mode, getch(), getstr(), -# getmouse(), ungetmouse(), init_color() +# init_color() +# Only called, not tested: getmouse(), ungetmouse() # import curses, sys, tempfile, os @@ -106,6 +107,8 @@ def window_funcs(stdscr): stdscr.notimeout(1) win2.overlay(win) win2.overwrite(win) + win2.overlay(win, 1, 2, 3, 3, 2, 1) + win2.overwrite(win, 1, 2, 3, 3, 2, 1) stdscr.redrawln(1,2) stdscr.scrollok(1) @@ -201,6 +204,9 @@ def module_funcs(stdscr): if hasattr(curses, 'getmouse'): curses.mousemask(curses.BUTTON1_PRESSED) curses.mouseinterval(10) + # just verify these don't cause errors + m = curses.getmouse() + curses.ungetmouse(*m) def unit_tests(): from curses import ascii diff --git a/Misc/ACKS b/Misc/ACKS index 7faa2c0aa5ee..ff5a9695e3e3 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -543,6 +543,7 @@ Kirill Simonov Nathan Paul Simons Janne Sinkkonen George Sipe +J. Sipprell Kragen Sitaker Christopher Smith Gregory P. Smith diff --git a/Misc/NEWS b/Misc/NEWS index 6d2e8c8999d1..30591b51fa7e 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -200,6 +200,10 @@ Core and builtins Extension Modules ----------------- +- Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints. + Also fix ungetmouse() which did not accept arguments properly. + The code now conforms to the documented signature. + - Bug #1400115, Fix segfault when calling curses.panel.userptr() without prior setting of the userptr. diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index acff973f2a0a..c3fffc6032dd 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -1163,7 +1163,7 @@ PyCursesWindow_Overlay(PyCursesWindowObject *self, PyObject *args) return NULL; break; case 7: - if (!PyArg_ParseTuple(args, "(O!iiiiii);window object, int, int, int, int, int, int", + if (!PyArg_ParseTuple(args, "O!iiiiii;window object, int, int, int, int, int, int", &PyCursesWindow_Type, &temp, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) return NULL; @@ -1201,7 +1201,7 @@ PyCursesWindow_Overwrite(PyCursesWindowObject *self, PyObject *args) return NULL; break; case 7: - if (!PyArg_ParseTuple(args, "(O!iiiiii);window object, int, int, int, int, int, int", + if (!PyArg_ParseTuple(args, "O!iiiiii;window object, int, int, int, int, int, int", &PyCursesWindow_Type, &temp, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) return NULL; @@ -1674,7 +1674,7 @@ PyCurses_UngetMouse(PyObject *self, PyObject *args) MEVENT event; PyCursesInitialised - if (!PyArg_ParseTuple(args, "(hiiil)", + if (!PyArg_ParseTuple(args, "hiiil", &event.id, &event.x, &event.y, &event.z, (int *) &event.bstate))