]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.14] gh-152502: Detect the curses mouse interface portably (GH-152705) (GH-152734)
authorSerhiy Storchaka <storchaka@gmail.com>
Wed, 1 Jul 2026 05:33:36 +0000 (08:33 +0300)
committerGitHub <noreply@github.com>
Wed, 1 Jul 2026 05:33:36 +0000 (05:33 +0000)
commit51cacbeff4671206fd10257a06e85c05b0f8e457
tree84671dafc14e8e05ebf7d535ff7fbe771e8cd8cc
parent08e17722227e372131a07b61fa8625dd3b224057
[3.14] gh-152502: Detect the curses mouse interface portably (GH-152705) (GH-152734)

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