]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.15] gh-152502: Detect the curses mouse interface portably (GH-152705) (GH-152707)
authorSerhiy Storchaka <storchaka@gmail.com>
Tue, 30 Jun 2026 20:59:28 +0000 (23:59 +0300)
committerGitHub <noreply@github.com>
Tue, 30 Jun 2026 20:59:28 +0000 (23:59 +0300)
commit83391ceff61bdc5d0ba994cdae23f1406885825c
tree66c5b12ea5f11f472984e62964881435b54b8673
parente9d064f395199a6e8509ff73b5111cff055e22d8
[3.15] gh-152502: Detect the curses mouse interface portably (GH-152705) (GH-152707)

The mouse interface (getmouse(), the BUTTON* constants, ...) was gated on the
ncurses-specific NCURSES_MOUSE_VERSION macro, so it was dropped on other curses
implementations that provide it, such as NetBSD curses and PDCurses.

Gate it instead on a configure capability probe or the PDCURSES macro.  Probe
for getmouse() with its X/Open getmouse(MEVENT *) signature, since PDCurses
declares an incompatible getmouse(void) unless built for the ncurses mouse API,
which PDC_NCMOUSE now always selects.

(cherry picked from commit 7bbea4f4868ef89b07b986d7a0d4b585e8271f27)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Include/py_curses.h
Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst [new file with mode: 0644]
Modules/_cursesmodule.c
Modules/clinic/_cursesmodule.c.h
configure
configure.ac
pyconfig.h.in