Mercurial > vim
view src/proto/clipboard.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 | ca6bc7c04163 |
children |
line wrap: on
line source
/* clipboard.c */ void clip_init(int can_use); void clip_update_selection(Clipboard_T *clip); void clip_own_selection(Clipboard_T *cbd); void clip_lose_selection(Clipboard_T *cbd); void start_global_changes(void); void end_global_changes(void); void clip_auto_select(void); int clip_isautosel_star(void); int clip_isautosel_plus(void); void clip_modeless(int button, int is_click, int is_drag); void clip_start_selection(int col, int row, int repeated_click); void clip_process_selection(int button, int col, int row, int_u repeated_click); void clip_may_redraw_selection(int row, int col, int len); void clip_clear_selection(Clipboard_T *cbd); void clip_may_clear_selection(int row1, int row2); void clip_scroll_selection(int rows); void clip_copy_modeless_selection(int both); void clip_gen_set_selection(Clipboard_T *cbd); int clip_gen_owner_exists(Clipboard_T *cbd); char *did_set_clipboard(optset_T *args); void open_app_context(void); void x11_setup_atoms(Display *dpy); void x11_setup_selection(Widget w); void clip_x11_request_selection(Widget myShell, Display *dpy, Clipboard_T *cbd); void clip_x11_lose_selection(Widget myShell, Clipboard_T *cbd); int clip_x11_own_selection(Widget myShell, Clipboard_T *cbd); void clip_x11_set_selection(Clipboard_T *cbd); void yank_cut_buffer0(Display *dpy, Clipboard_T *cbd); void x11_export_final_selection(void); void clip_free_selection(Clipboard_T *cbd); void clip_get_selection(Clipboard_T *cbd); void clip_yank_selection(int type, char_u *str, long len, Clipboard_T *cbd); int clip_convert_selection(char_u **str, long_u *len, Clipboard_T *cbd); int may_get_selection(int regname); void may_set_selection(void); void adjust_clip_reg(int *rp); /* vim: set ft=c : */