From: Serhiy Storchaka Date: Thu, 23 Jul 2026 14:48:17 +0000 (+0300) Subject: gh-154525: Fix curses getcchar() failure on ncurses older than 6.3 (GH-154526) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aad438b0b61206ff67f32aa1ca24792f26f6fff9;p=thirdparty%2FPython%2Fcpython.git gh-154525: Fix curses getcchar() failure on ncurses older than 6.3 (GH-154526) getcchar() rejected a non-NULL opts argument before ncurses 6.3, so read the color pair through the short slot instead. Co-Authored-By: Claude Opus 4.8 (1M context) --- diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 6df593001b8a..f893c2080fc3 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -763,7 +763,9 @@ curses_getcchar(const cchar_t *wcval, wchar_t *wstr, attr_t *attrs, int *pair) /* getcchar() is not guaranteed to write the text of an empty cell, so make the output an empty string by default. */ wstr[0] = L'\0'; -#if _NCURSES_EXTENDED_COLOR_FUNCS + /* getcchar()'s opts slot returns the extended color pair, but ncurses + returned ERR for a non-NULL opts until 6.3 (patch 20210116). */ +#if _NCURSES_EXTENDED_COLOR_FUNCS && NCURSES_VERSION_PATCH+0 >= 20210116 int rtn = getcchar(wcval, wstr, attrs, &spair, pair); #else int rtn = getcchar(wcval, wstr, attrs, &spair, NULL);