]> granicus.if.org Git - python/commitdiff
Issue #19884: Avoid spurious output on OS X with Gnu Readline
authorMartin Panter <vadmium+py@gmail.com>
Sat, 27 Aug 2016 02:54:43 +0000 (02:54 +0000)
committerMartin Panter <vadmium+py@gmail.com>
Sat, 27 Aug 2016 02:54:43 +0000 (02:54 +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 588043ee5e9cc9b2cbee0de1763ed969fb2fe838..4c400eff95d04fde76bed3e16b3a5054ab671cad 100644 (file)
@@ -44,7 +44,7 @@ class TestHistoryManipulation (unittest.TestCase):
 
 class TestReadline(unittest.TestCase):
 
-    @unittest.skipIf(readline._READLINE_VERSION < 0x0600
+    @unittest.skipIf(readline._READLINE_VERSION < 0x0601
                      and "libedit" not in readline.__doc__,
                      "not supported in this library version")
     def test_init(self):
index 7f5f66a4ea886eef560772af71cfdc43232ae1c1..e19cab42e556495ff6eaeeae3ed9f708da2e7179 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -33,6 +33,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 6091a686b104a3c1ddd21e2d88bede400ded33fe..ad5903cfb51a54386fe42ed012095a929f04a1ee 100644 (file)
@@ -961,19 +961,22 @@ setup_readline(void)
     begidx = PyInt_FromLong(0L);
     endidx = PyInt_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)
      *