]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-153862: Fix curses window.inch() for non-ASCII characters on a wide build (GH...
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 19 Jul 2026 07:43:22 +0000 (10:43 +0300)
committerGitHub <noreply@github.com>
Sun, 19 Jul 2026 07:43:22 +0000 (10:43 +0300)
commita83aaa91490d5885949eb0780a37b15963b6d0f3
tree39c60c7cd6f0c73b22d5a151c3d543d7f98c8406
parent33df37dd735777e69c5060c94ee348e89132c63d
gh-153862: Fix curses window.inch() for non-ASCII characters on a wide build (GH-153863)

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().

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