]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #19884: Avoid spurious output on OS X with Gnu Readline
authorMartin Panter <vadmium+py@gmail.com>
Sat, 27 Aug 2016 03:23:11 +0000 (03:23 +0000)
committerMartin Panter <vadmium+py@gmail.com>
Sat, 27 Aug 2016 03:23:11 +0000 (03:23 +0000)
Also adjust the test condition, because enable-meta-key was only added in
6.1, not 6.0.

Lib/test/test_readline.py
Misc/NEWS
Modules/readline.c

index 8c2ad856cc2ca8cb7cd9bc0adda8ef084feb8789..2c73df291f0c5ab8ebc16656e215660e81351e38 100644 (file)
@@ -111,7 +111,7 @@ class TestHistoryManipulation (unittest.TestCase):
 
 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
index f9e2d09ebd430f650cd0bb0196ecc487c66a75b7..290cf867fa4b29568f89b27b6e3fa299929a5948 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -50,6 +50,8 @@ Core and Builtins
 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.
 
index 91f7cca73e3d556cb1901732b24e651b4661bd6c..383b19abbcce408b08ea8e154bdcb2576abccc52 100644 (file)
@@ -1129,19 +1129,22 @@ setup_readline(readlinestate *mod_state)
     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").
-
-           With libedit, this call makes readline() crash. */
-        rl_variable_bind ("enable-meta-key", "off");
-    }
+#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");
+        }
+    }
 
     /* Initialize (allows .inputrc to override)
      *