]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.13] gh-152502: Detect the curses mouse interface portably (GH-152705) (GH-152735)
authorSerhiy Storchaka <storchaka@gmail.com>
Wed, 1 Jul 2026 05:30:45 +0000 (08:30 +0300)
committerGitHub <noreply@github.com>
Wed, 1 Jul 2026 05:30:45 +0000 (05:30 +0000)
commit79d2264bc39ec300892614e8c6863e58b8e04f6b
treea91c188d188a5f08e7f3440abcc065a0a393616f
parentce97622b31a691ff37fde9d5001ace8eab54d04c
[3.13] gh-152502: Detect the curses mouse interface portably (GH-152705) (GH-152735)

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