comparison src/proto/getchar.pro @ 33662:664ee4c0daca v9.0.2069

patch 9.0.2069: possible to escape bracketed paste mode with Ctrl-C Commit: https://github.com/vim/vim/commit/67ec6553839f070cd4cc8effa26a9db1750e17b6 Author: David Leadbeater <dgl@dgl.cx> Date: Thu Oct 26 22:00:34 2023 +0200 patch 9.0.2069: possible to escape bracketed paste mode with Ctrl-C Problem: possible to escape bracketed paste mode with Ctrl-C Solution: Do not handle Ctrl-C specially when key_protocol is in use, makes bracketed paste mode more robust When a key protocol is in use Ctrl-C will be sent as an escape sequence, but a raw Ctrl-C can be sent when pasting data. Pass this through, so that a Ctrl-C can be pasted and won't result in exiting insert mode (where the rest of the pasted keys can cause all kind of nasty side-effects). Many terminals will strip control characters in paste data (and xterm will strip ^C since version 388), but this provides some defense in depth if users change settings like xterm's allowPasteControls. closes: #13398 Signed-off-by: David Leadbeater <dgl@dgl.cx> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 26 Oct 2023 22:15:04 +0200
parents dfaddd6f039e
children 6be721794e1f
comparison
equal deleted inserted replaced
33661:3966317e1cb4 33662:664ee4c0daca
49 int char_avail(void); 49 int char_avail(void);
50 void f_getchar(typval_T *argvars, typval_T *rettv); 50 void f_getchar(typval_T *argvars, typval_T *rettv);
51 void f_getcharstr(typval_T *argvars, typval_T *rettv); 51 void f_getcharstr(typval_T *argvars, typval_T *rettv);
52 void f_getcharmod(typval_T *argvars, typval_T *rettv); 52 void f_getcharmod(typval_T *argvars, typval_T *rettv);
53 void parse_queued_messages(void); 53 void parse_queued_messages(void);
54 int key_protocol_enabled(void);
54 void vungetc(int c); 55 void vungetc(int c);
55 int fix_input_buffer(char_u *buf, int len); 56 int fix_input_buffer(char_u *buf, int len);
56 int input_available(void); 57 int input_available(void);
57 void may_add_last_used_map_to_redobuff(void); 58 void may_add_last_used_map_to_redobuff(void);
58 int do_cmdkey_command(int key, int flags); 59 int do_cmdkey_command(int key, int flags);