]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.14] gh-153862: Fix curses window.inch() for non-ASCII characters on a wide build...
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 19 Jul 2026 15:19:15 +0000 (18:19 +0300)
committerGitHub <noreply@github.com>
Sun, 19 Jul 2026 15:19:15 +0000 (15:19 +0000)
commit1933f77772b8bcbbb308a0efc9767c096015e688
tree02aa46a7dd26b1184d814213157e550ed7b58444
parent6839aa8711bbeb089ee0c28e8ccf9aee436a8189
[3.14] gh-153862: Fix curses window.inch() for non-ASCII characters on a wide build (GH-153863) (GH-154151)

On a wide build, winch() returns the low 8 bits of the character's code
point with no locale conversion, so inch()/mvinch() disagreed with instr()
for a non-ASCII character of an 8-bit locale ('€' under ISO-8859-15 gave
0xAC instead of 0xA4).  Re-encode the cell to its locale byte via wctob(),
as ncurses does for getbkgd().

(cherry picked from commit a83aaa91490d5885949eb0780a37b15963b6d0f3)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Doc/library/curses.rst
Lib/test/test_curses.py
Misc/NEWS.d/next/Library/2026-07-17-20-31-00.gh-issue-153862.X3kjoY.rst [new file with mode: 0644]
Modules/_cursesmodule.c