diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-11-02 22:47:58 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-11-02 22:47:58 (GMT) |
commit | df5bccc8a3adfe79e93bbc62bc24b3a95d57b3ac (patch) | |
tree | cd0889e89ba7fe709def04a3b8e5a66879a310dd | |
parent | 2787ea41fd11b8e0a0514e13b61af8e12764a8f6 (diff) | |
parent | 2662133a05d789de67aeaaad24aa86f49da95844 (diff) | |
download | cpython-df5bccc8a3adfe79e93bbc62bc24b3a95d57b3ac.zip cpython-df5bccc8a3adfe79e93bbc62bc24b3a95d57b3ac.tar.gz cpython-df5bccc8a3adfe79e93bbc62bc24b3a95d57b3ac.tar.bz2 |
(Merge 3.2) Issue #10570: curses.tigetstr() is now expecting a byte string,
instead of a Unicode string.
This is an incompatible change, but the previous behaviour was completly wrong.
-rw-r--r-- | Doc/library/curses.rst | 2 | ||||
-rw-r--r-- | Lib/test/test_curses.py | 7 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/_cursesmodule.c | 2 |
4 files changed, 11 insertions, 3 deletions
diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst index df25910..d6a35c3 100644 --- a/Doc/library/curses.rst +++ b/Doc/library/curses.rst @@ -566,7 +566,7 @@ The module :mod:`curses` defines the following functions: Instantiate the string *str* with the supplied parameters, where *str* should be a parameterized string obtained from the terminfo database. E.g. - ``tparm(tigetstr("cup"), 5, 3)`` could result in ``'\033[6;4H'``, the exact + ``tparm(tigetstr("cup"), 5, 3)`` could result in ``b'\033[6;4H'``, the exact result depending on terminal type. diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index b4673e9..ccbbc23 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -190,7 +190,7 @@ def module_funcs(stdscr): curses.tigetflag('hc') curses.tigetnum('co') curses.tigetstr('cr') - curses.tparm('cr') + curses.tparm(b'cr') curses.typeahead(sys.__stdin__.fileno()) curses.unctrl('a') curses.ungetch('a') @@ -280,6 +280,10 @@ def test_unget_wch(stdscr): if read != ch: raise AssertionError("%r != %r" % (read, ch)) +def test_issue10570(): + b = curses.tparm(curses.tigetstr("cup"), 5, 3) + assert type(b) is bytes + def main(stdscr): curses.savetty() try: @@ -289,6 +293,7 @@ def main(stdscr): test_resize_term(stdscr) test_issue6243(stdscr) test_unget_wch(stdscr) + test_issue10570() finally: curses.resetty() @@ -350,6 +350,9 @@ Core and Builtins Library ------- +- Issue #10570: curses.tigetstr() is now expecting a byte string, instead of + a Unicode string. + - Issue #13295: http.server now produces valid HTML 4.01 strict. - Issue #2892: preserve iterparse events in case of SyntaxError. diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 8790243..cc42f4b 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -2642,7 +2642,7 @@ PyCurses_tparm(PyObject *self, PyObject *args) PyCursesSetupTermCalled; - if (!PyArg_ParseTuple(args, "s|iiiiiiiii:tparm", + if (!PyArg_ParseTuple(args, "y|iiiiiiiii:tparm", &fmt, &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8, &i9)) { return NULL; |