SF bug #1400822, Extended version of _curses over{lay,write} does not work

Fix signatures to conform to doc (also fixed ungetmouse()).

Will backport.
This commit is contained in:
Neal Norwitz 2006-01-10 07:05:44 +00:00
parent fc76d633e8
commit 88bbd73d07
4 changed files with 15 additions and 4 deletions

View File

@ -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

View File

@ -552,6 +552,7 @@ Kirill Simonov
Nathan Paul Simons
Janne Sinkkonen
George Sipe
J. Sipprell
Kragen Sitaker
Christopher Smith
Gregory P. Smith

View File

@ -216,6 +216,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.

View File

@ -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))