(Merge 3.2) 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.
This commit is contained in:
Victor Stinner 2011-11-03 20:36:55 +01:00
commit 65f51bb150
3 changed files with 6 additions and 4 deletions

View File

@ -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)
@ -283,6 +283,7 @@ def test_unget_wch(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()

View File

@ -353,8 +353,8 @@ Library
- Byte compilation in packaging is now isolated from the calling Python -B or
-O options, instead of being disallowed under -B or buggy under -O.
- 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 #13295: http.server now produces valid HTML 4.01 strict.

View File

@ -2418,7 +2418,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");
}