]> git.puffer.fish Git - mirror/frr.git/commitdiff
vtysh: disable bracketed paste in readline 8033/head
authorQuentin Young <qlyoung@qlyoung.net>
Mon, 8 Feb 2021 01:15:24 +0000 (20:15 -0500)
committerQuentin Young <qlyoung@qlyoung.net>
Mon, 8 Feb 2021 03:51:07 +0000 (22:51 -0500)
GNU Readline 8.1 enables bracketed paste by default. This results in
newlines not ending the readline() call, which breaks the ability of
users to paste in configs to vtysh's interactive shell.

Disable bracketed paste.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
vtysh/vtysh.c

index efb6b28acc336150649ead56b6a97f38214d082c..e026a2862889955a21f5970714b58bd7457ab3af 100644 (file)
@@ -4001,10 +4001,16 @@ static char *vtysh_completion_entry_function(const char *ignore,
 void vtysh_readline_init(void)
 {
        /* readline related settings. */
+       char *disable_bracketed_paste =
+               XSTRDUP(MTYPE_TMP, "set enable-bracketed-paste off");
+
        rl_initialize();
+       rl_parse_and_bind(disable_bracketed_paste);
        rl_bind_key('?', (rl_command_func_t *)vtysh_rl_describe);
        rl_completion_entry_function = vtysh_completion_entry_function;
        rl_attempted_completion_function = new_completion;
+
+       XFREE(MTYPE_TMP, disable_bracketed_paste);
 }
 
 char *vtysh_prompt(void)