mirror of https://github.com/python/cpython.git
bpo-42819, readline: Disable bracketed paste (GH-24108) (GH-24545)
(cherry picked from commit 755f3c1521
)
Co-authored-by: Dustin Rodrigues <dust.rod@gmail.com>
Co-authored-by: Dustin Rodrigues <dust.rod@gmail.com>
This commit is contained in:
parent
9cc70bc220
commit
85fd9f4e45
|
@ -1444,6 +1444,7 @@ Mark Roddy
|
||||||
Kevin Rodgers
|
Kevin Rodgers
|
||||||
Sean Rodman
|
Sean Rodman
|
||||||
Giampaolo Rodola
|
Giampaolo Rodola
|
||||||
|
Dustin Rodrigues
|
||||||
Mauro S. M. Rodrigues
|
Mauro S. M. Rodrigues
|
||||||
Elson Rodriguez
|
Elson Rodriguez
|
||||||
Adi Roiban
|
Adi Roiban
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
:mod:`readline`: Explicitly disable bracketed paste in the interactive
|
||||||
|
interpreter, even if it's set in the inputrc, is enabled by default (eg GNU
|
||||||
|
Readline 8.1), or a user calls ``readline.read_init_file()``. The Python REPL
|
||||||
|
has not implemented bracketed paste support. Also, bracketed mode writes the
|
||||||
|
``"\x1b[?2004h"`` escape sequence into stdout which causes test failures in
|
||||||
|
applications that don't support it. It can still be explicitly enabled by
|
||||||
|
calling ``readline.parse_and_bind("set enable-bracketed-paste on")``. Patch by
|
||||||
|
Dustin Rodrigues.
|
|
@ -146,6 +146,26 @@ decode(const char *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Explicitly disable bracketed paste in the interactive interpreter, even if it's
|
||||||
|
set in the inputrc, is enabled by default (eg GNU Readline 8.1), or a user calls
|
||||||
|
readline.read_init_file(). The Python REPL has not implemented bracketed
|
||||||
|
paste support. Also, bracketed mode writes the "\x1b[?2004h" escape sequence
|
||||||
|
into stdout which causes test failures in applications that don't support it.
|
||||||
|
It can still be explicitly enabled by calling readline.parse_and_bind("set
|
||||||
|
enable-bracketed-paste on"). See bpo-42819 for more details.
|
||||||
|
|
||||||
|
This should be removed if bracketed paste mode is implemented (bpo-39820).
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
disable_bracketed_paste(void)
|
||||||
|
{
|
||||||
|
if (!using_libedit_emulation) {
|
||||||
|
rl_variable_bind ("enable-bracketed-paste", "off");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Exported function to send one line to readline's init file parser */
|
/* Exported function to send one line to readline's init file parser */
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
@ -192,6 +212,7 @@ read_init_file(PyObject *self, PyObject *args)
|
||||||
errno = rl_read_init_file(NULL);
|
errno = rl_read_init_file(NULL);
|
||||||
if (errno)
|
if (errno)
|
||||||
return PyErr_SetFromErrno(PyExc_OSError);
|
return PyErr_SetFromErrno(PyExc_OSError);
|
||||||
|
disable_bracketed_paste();
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1152,6 +1173,8 @@ setup_readline(readlinestate *mod_state)
|
||||||
else
|
else
|
||||||
rl_initialize();
|
rl_initialize();
|
||||||
|
|
||||||
|
disable_bracketed_paste();
|
||||||
|
|
||||||
RESTORE_LOCALE(saved_locale)
|
RESTORE_LOCALE(saved_locale)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue