mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	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
					
				
					 3 changed files with 32 additions and 0 deletions
				
			
		|  | @ -1444,6 +1444,7 @@ Mark Roddy | |||
| Kevin Rodgers | ||||
| Sean Rodman | ||||
| Giampaolo Rodola | ||||
| Dustin Rodrigues | ||||
| Mauro S. M. Rodrigues | ||||
| Elson Rodriguez | ||||
| 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 */ | ||||
| 
 | ||||
| static PyObject * | ||||
|  | @ -192,6 +212,7 @@ read_init_file(PyObject *self, PyObject *args) | |||
|         errno = rl_read_init_file(NULL); | ||||
|     if (errno) | ||||
|         return PyErr_SetFromErrno(PyExc_OSError); | ||||
|     disable_bracketed_paste(); | ||||
|     Py_RETURN_NONE; | ||||
| } | ||||
| 
 | ||||
|  | @ -1152,6 +1173,8 @@ setup_readline(readlinestate *mod_state) | |||
|     else | ||||
|         rl_initialize(); | ||||
| 
 | ||||
|     disable_bracketed_paste(); | ||||
| 
 | ||||
|     RESTORE_LOCALE(saved_locale) | ||||
|     return 0; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miss Islington (bot)
						Miss Islington (bot)