Skip to content

gh-161571: Fix a crash in curses.tparm() with string parameters - #161601

Open
serhiy-storchaka wants to merge 1 commit into
python:mainfrom
serhiy-storchaka:curses-tparm-string-params
Open

serhiy-storchaka wants to merge 1 commit into
python:mainfrom
serhiy-storchaka:curses-tparm-string-params

Conversation

@serhiy-storchaka

Copy link
Copy Markdown
Member

curses takes as char * the parameters that the format string formats with %s or %l after %pN, for example in the Ms and Cs capabilities of xterm. curses.tparm() passed all parameters as integers, so an integer there crashed.

tparm() now finds these parameters in the format string, as ncurses does, and requires bytes objects for them, which it passes as char *. An integer there raises TypeError. The other parameters are integers, as before. An omitted parameter is still 0, which curses takes as an empty string for a string parameter.

The parameters are now a var-positional parameter, tparm(str, /, *params), with at most nine of them.

🤖 Generated with Claude Code

curses passes the parameters that the format string formats with %s or
%l after %p as char *, for example in the Ms capability of xterm.  An
integer there crashed it.  Such parameters must now be bytes objects,
which are passed as char *.  The parameters are now a var-positional
parameter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant