From b3bc7e764db4327953aaaf1316e0edc0ff6b16fb Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 3 Nov 2011 20:35:40 +0100 Subject: Issue #10570: curses.putp() is now expecting a byte string, instead of a Unicode string. This is an incompatible change, but putp() is used to emit terminfo commands, which are bytes strings, not Unicode strings. --- Lib/test/test_curses.py | 3 ++- Misc/NEWS | 4 ++-- Modules/_cursesmodule.c | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index 0980783..5812147 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -183,7 +183,7 @@ def module_funcs(stdscr): win = curses.newwin(5,5) win = curses.newwin(5,5, 1,1) curses.nl() ; curses.nl(1) - curses.putp('abc') + curses.putp(b'abc') curses.qiflush() curses.raw() ; curses.raw(1) curses.setsyx(5,5) @@ -267,6 +267,7 @@ def test_issue6243(stdscr): def test_issue10570(): b = curses.tparm(curses.tigetstr("cup"), 5, 3) assert type(b) is bytes + curses.putp(b) def main(stdscr): curses.savetty() diff --git a/Misc/NEWS b/Misc/NEWS index 993dfae..276f665 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -66,8 +66,8 @@ Core and Builtins Library ------- -- Issue #10570: curses.tigetstr() is now expecting a byte string, instead of - a Unicode string. +- Issue #10570: curses.putp() and curses.tigetstr() are now expecting a byte + string, instead of a Unicode string. - Issue #2892: preserve iterparse events in case of SyntaxError. diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 4f7a525..5e1afa9 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -2379,7 +2379,8 @@ PyCurses_Putp(PyObject *self, PyObject *args) { char *str; - if (!PyArg_ParseTuple(args,"s;str", &str)) return NULL; + if (!PyArg_ParseTuple(args,"y;str", &str)) + return NULL; return PyCursesCheckERR(putp(str), "putp"); } -- cgit v0.12