[Python-checkins] cpython (2.7): don't call rl_initialize when stdout is not a tty

benjamin.peterson python-checkins at python.org
Wed Aug 20 23:03:53 CEST 2014


http://hg.python.org/cpython/rev/7c19f1f792c6
changeset:   92168:7c19f1f792c6
branch:      2.7
user:        Benjamin Peterson <benjamin at python.org>
date:        Wed Aug 20 16:03:43 2014 -0500
summary:
  don't call rl_initialize when stdout is not a tty

files:
  Modules/readline.c |  7 ++-----
  1 files changed, 2 insertions(+), 5 deletions(-)


diff --git a/Modules/readline.c b/Modules/readline.c
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -933,19 +933,15 @@
     begidx = PyInt_FromLong(0L);
     endidx = PyInt_FromLong(0L);
 
-#ifndef __APPLE__
     if (!isatty(STDOUT_FILENO)) {
         /* Issue #19884: stdout is no 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. */
+           "\033[1034h"). */
         rl_variable_bind ("enable-meta-key", "off");
     }
-#endif
 
     /* Initialize (allows .inputrc to override)
      *
@@ -957,6 +953,7 @@
         rl_read_init_file(NULL);
     else
 #endif /* __APPLE__ */
+    if (isatty(STDOUT_FILENO))
         rl_initialize();
 
     RESTORE_LOCALE(saved_locale)

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


More information about the Python-checkins mailing list