[Python-checkins] cpython (3.5): Issue #19884: Avoid spurious output on OS X with Gnu Readline

martin.panter python-checkins at python.org
Sat Aug 27 00:10:52 EDT 2016


https://hg.python.org/cpython/rev/782d9b5d2e90
changeset:   102925:782d9b5d2e90
branch:      3.5
parent:      102917:81f614dd8136
user:        Martin Panter <vadmium+py at gmail.com>
date:        Sat Aug 27 03:23:11 2016 +0000
summary:
  Issue #19884: Avoid spurious output on OS X with Gnu Readline

Also adjust the test condition, because enable-meta-key was only added in
6.1, not 6.0.

files:
  Lib/test/test_readline.py |   2 +-
  Misc/NEWS                 |   2 ++
  Modules/readline.c        |  25 ++++++++++++++-----------
  3 files changed, 17 insertions(+), 12 deletions(-)


diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py
--- a/Lib/test/test_readline.py
+++ b/Lib/test/test_readline.py
@@ -111,7 +111,7 @@
 
 class TestReadline(unittest.TestCase):
 
-    @unittest.skipIf(readline._READLINE_VERSION < 0x0600 and not is_editline,
+    @unittest.skipIf(readline._READLINE_VERSION < 0x0601 and not is_editline,
                      "not supported in this library version")
     def test_init(self):
         # Issue #19884: Ensure that the ANSI sequence "\033[1034h" is not
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -50,6 +50,8 @@
 Library
 -------
 
+- Issue #19884: Avoid spurious output on OS X with Gnu Readline.
+
 - Issue #10513: Fix a regression in Connection.commit().  Statements should
   not be reset after a commit.
 
diff --git a/Modules/readline.c b/Modules/readline.c
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -1129,19 +1129,22 @@
     mod_state->begidx = PyLong_FromLong(0L);
     mod_state->endidx = PyLong_FromLong(0L);
 
-#ifndef __APPLE__
-    if (!isatty(STDOUT_FILENO)) {
-        /* Issue #19884: stdout is not a terminal. Disable meta modifier
-           keys to not write the ANSI sequence "\033[1034h" into stdout. On
-           terminals supporting 8 bit characters like TERM=xterm-256color
-           (which is now the default Fedora since Fedora 18), the meta key is
-           used to enable support of 8 bit characters (ANSI sequence
-           "\033[1034h").
+#ifdef __APPLE__
+    if (!using_libedit_emulation)
+#endif
+    {
+        if (!isatty(STDOUT_FILENO)) {
+            /* Issue #19884: stdout is not a terminal. Disable meta modifier
+               keys to not write the ANSI sequence "\033[1034h" into stdout. On
+               terminals supporting 8 bit characters like TERM=xterm-256color
+               (which is now the default Fedora since Fedora 18), the meta key is
+               used to enable support of 8 bit characters (ANSI sequence
+               "\033[1034h").
 
-           With libedit, this call makes readline() crash. */
-        rl_variable_bind ("enable-meta-key", "off");
+               With libedit, this call makes readline() crash. */
+            rl_variable_bind ("enable-meta-key", "off");
+        }
     }
-#endif
 
     /* Initialize (allows .inputrc to override)
      *

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list