[?1034hdiff -r fa032af2b5a7 Lib/test/test_readline.py --- a/Lib/test/test_readline.py Wed Jun 11 09:08:52 2014 +0200 +++ b/Lib/test/test_readline.py Thu Jun 12 11:14:03 2014 +0200 @@ -1,17 +1,20 @@ """ Very minimal unittests for parts of the readline module. - -These tests were added to check that the libedit emulation on OSX and -the "real" readline have the same interface for history manipulation. That's -why the tests cover only a small subset of the interface. """ +import os import unittest from test.support import run_unittest, import_module +from test.script_helper import assert_python_ok # Skip tests if there is no readline module readline = import_module('readline') class TestHistoryManipulation (unittest.TestCase): + """ + These tests were added to check that the libedit emulation on OSX and the + "real" readline have the same interface for history manipulation. That's + why the tests cover only a small subset of the interface. + """ @unittest.skipIf(not hasattr(readline, 'clear_history'), "The history update test cannot be run because the " @@ -40,8 +43,15 @@ class TestHistoryManipulation (unittest. self.assertEqual(readline.get_current_history_length(), 1) +class TestReadline(unittest.TestCase): + def test_init(self): + rc, stdout, stderr = assert_python_ok('-c', 'import readline', + TERM='xterm-256color') + self.assertEqual(stdout, b'') + + def test_main(): - run_unittest(TestHistoryManipulation) + run_unittest(TestHistoryManipulation, TestReadline) if __name__ == "__main__": test_main() diff -r fa032af2b5a7 Modules/readline.c --- a/Modules/readline.c Wed Jun 11 09:08:52 2014 +0200 +++ b/Modules/readline.c Thu Jun 12 11:14:03 2014 +0200 @@ -1019,6 +1019,15 @@ setup_readline(readlinestate *mod_state) mod_state->begidx = PyLong_FromLong(0L); mod_state->endidx = PyLong_FromLong(0L); + + if (!isatty(STDOUT_FILENO)) { + /* Issue #19884: Don't try to enable any meta modifier key the terminal + claims to support when it is called. On many terminals (ex: + xterm-256color), the meta key is used to send eight-bit characters + (ANSI sequence "\033[1034h"). */ + rl_variable_bind ("enable-meta-key", "off"); + } + /* Initialize (allows .inputrc to override) * * XXX: A bug in the readline-2.2 library causes a memory leak