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. # does call every method and function.
# #
# Functions not tested: {def,reset}_{shell,prog}_mode, getch(), getstr(), # 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 import curses, sys, tempfile, os
@ -106,6 +107,8 @@ def window_funcs(stdscr):
stdscr.notimeout(1) stdscr.notimeout(1)
win2.overlay(win) win2.overlay(win)
win2.overwrite(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.redrawln(1,2)
stdscr.scrollok(1) stdscr.scrollok(1)
@ -201,6 +204,9 @@ def module_funcs(stdscr):
if hasattr(curses, 'getmouse'): if hasattr(curses, 'getmouse'):
curses.mousemask(curses.BUTTON1_PRESSED) curses.mousemask(curses.BUTTON1_PRESSED)
curses.mouseinterval(10) curses.mouseinterval(10)
# just verify these don't cause errors
m = curses.getmouse()
curses.ungetmouse(*m)
def unit_tests(): def unit_tests():
from curses import ascii from curses import ascii

View File

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

View File

@ -216,6 +216,10 @@ Core and builtins
Extension Modules 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() - Bug #1400115, Fix segfault when calling curses.panel.userptr()
without prior setting of the userptr. without prior setting of the userptr.

View File

@ -1163,7 +1163,7 @@ PyCursesWindow_Overlay(PyCursesWindowObject *self, PyObject *args)
return NULL; return NULL;
break; break;
case 7: 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, &PyCursesWindow_Type, &temp, &sminrow, &smincol,
&dminrow, &dmincol, &dmaxrow, &dmaxcol)) &dminrow, &dmincol, &dmaxrow, &dmaxcol))
return NULL; return NULL;
@ -1201,7 +1201,7 @@ PyCursesWindow_Overwrite(PyCursesWindowObject *self, PyObject *args)
return NULL; return NULL;
break; break;
case 7: 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, &PyCursesWindow_Type, &temp, &sminrow, &smincol,
&dminrow, &dmincol, &dmaxrow, &dmaxcol)) &dminrow, &dmincol, &dmaxrow, &dmaxcol))
return NULL; return NULL;
@ -1674,7 +1674,7 @@ PyCurses_UngetMouse(PyObject *self, PyObject *args)
MEVENT event; MEVENT event;
PyCursesInitialised PyCursesInitialised
if (!PyArg_ParseTuple(args, "(hiiil)", if (!PyArg_ParseTuple(args, "hiiil",
&event.id, &event.id,
&event.x, &event.y, &event.z, &event.x, &event.y, &event.z,
(int *) &event.bstate)) (int *) &event.bstate))