annotate src/proto/term.pro @ 31192:dcde141f2d1e v9.0.0930

patch 9.0.0930: cannot debug the Kitty keyboard protocol with TermDebug Commit: https://github.com/vim/vim/commit/63a2e360cca2c70ab0a85d14771d3259d4b3aafa Author: Bram Moolenaar <Bram@vim.org> Date: Wed Nov 23 20:20:18 2022 +0000 patch 9.0.0930: cannot debug the Kitty keyboard protocol with TermDebug Problem: Cannot debug the Kitty keyboard protocol with TermDebug. Solution: Add Kitty keyboard protocol support to the libvterm fork. Recognize the escape sequences that the protocol generates. Add the 'keyprotocol' option to allow the user to specify for which terminal what protocol is to be used, instead of hard-coding this. Add recognizing the kitty keyboard protocol status.
author Bram Moolenaar <Bram@vim.org>
date Wed, 23 Nov 2022 21:30:04 +0100
parents 1207b6d6cf9e
children ff4473b3fc58
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 /* term.c */
9027
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 9013
diff changeset
2 guicolor_T termgui_get_color(char_u *name);
9939
ccb6461b82df commit https://github.com/vim/vim/commit/1b58cdd160c2e0ada0f638679a2aa27e4665fc48
Christian Brabandt <cb@256bit.org>
parents: 9027
diff changeset
3 guicolor_T termgui_mch_get_rgb(guicolor_T color);
20836
2616c5a337e0 patch 8.2.0970: terminal properties are not available in Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20768
diff changeset
4 void init_term_props(int all);
2616c5a337e0 patch 8.2.0970: terminal properties are not available in Vim script
Bram Moolenaar <Bram@vim.org>
parents: 20768
diff changeset
5 void f_terminalprops(typval_T *argvars, typval_T *rettv);
19997
3d1de9093c01 patch 8.2.0554: the GUI doesn't set t_Co
Bram Moolenaar <Bram@vim.org>
parents: 19405
diff changeset
6 void set_color_count(int nr);
31192
dcde141f2d1e patch 9.0.0930: cannot debug the Kitty keyboard protocol with TermDebug
Bram Moolenaar <Bram@vim.org>
parents: 30641
diff changeset
7 keyprot_T match_keyprotocol(char_u *term);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
8 int set_termname(char_u *term);
26177
13e09dc59f0f patch 8.2.3620: memory leak reported in libtlib
Bram Moolenaar <Bram@vim.org>
parents: 26057
diff changeset
9 void free_cur_term(void);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
10 void getlinecol(long *cp, long *rp);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
11 int add_termcap_entry(char_u *name, int force);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
12 int term_is_8bit(char_u *name);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
13 int term_is_gui(char_u *name);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
14 char_u *tltoa(unsigned long i);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
15 void termcapinit(char_u *name);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
16 void out_flush(void);
13150
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12640
diff changeset
17 void out_flush_cursor(int force, int clear_selection);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
18 void out_flush_check(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
19 void out_trash(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
20 void out_char(unsigned c);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
21 void out_str_nf(char_u *s);
11601
0a5d405e2520 patch 8.0.0683: visual bell flashes too quickly
Christian Brabandt <cb@256bit.org>
parents: 11315
diff changeset
22 void out_str_cf(char_u *s);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
23 void out_str(char_u *s);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
24 void term_windgoto(int row, int col);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
25 void term_cursor_right(int i);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
26 void term_append_lines(int line_count);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
27 void term_delete_lines(int line_count);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
28 void term_set_winpos(int x, int y);
13379
0f9dd1b43244 patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents: 13314
diff changeset
29 int term_get_winpos(int *x, int *y, varnumber_T timeout);
11745
5a5709918a98 patch 8.0.0755: terminal window does not have colors in the GUI
Christian Brabandt <cb@256bit.org>
parents: 11601
diff changeset
30 void term_set_winsize(int height, int width);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
31 void term_fg_color(int n);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
32 void term_bg_color(int n);
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20450
diff changeset
33 void term_ul_color(int n);
18679
fd95d4dbeb37 patch 8.1.2331: the option.c file is still very big
Bram Moolenaar <Bram@vim.org>
parents: 18301
diff changeset
34 char_u *term_bg_default(void);
9939
ccb6461b82df commit https://github.com/vim/vim/commit/1b58cdd160c2e0ada0f638679a2aa27e4665fc48
Christian Brabandt <cb@256bit.org>
parents: 9027
diff changeset
35 void term_fg_rgb_color(guicolor_T rgb);
ccb6461b82df commit https://github.com/vim/vim/commit/1b58cdd160c2e0ada0f638679a2aa27e4665fc48
Christian Brabandt <cb@256bit.org>
parents: 9027
diff changeset
36 void term_bg_rgb_color(guicolor_T rgb);
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20450
diff changeset
37 void term_ul_rgb_color(guicolor_T rgb);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
38 void term_settitle(char_u *title);
14479
3375a8cbb442 patch 8.1.0253: saving and restoring window title does not always work
Christian Brabandt <cb@256bit.org>
parents: 14461
diff changeset
39 void term_push_title(int which);
3375a8cbb442 patch 8.1.0253: saving and restoring window title does not always work
Christian Brabandt <cb@256bit.org>
parents: 14461
diff changeset
40 void term_pop_title(int which);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
41 void ttest(int pairs);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
42 void add_long_to_buf(long_u val, char_u *dst);
18150
0ec6521e9d80 patch 8.1.2070: mouse code is spread out
Bram Moolenaar <Bram@vim.org>
parents: 18135
diff changeset
43 int get_bytes_from_buf(char_u *buf, char_u *bytes, int num_bytes);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
44 void check_shellsize(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
45 void limit_screen_size(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
46 void win_new_shellsize(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
47 void shell_resized(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
48 void shell_resized_check(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
49 void set_shellsize(int width, int height, int mustset);
31192
dcde141f2d1e patch 9.0.0930: cannot debug the Kitty keyboard protocol with TermDebug
Bram Moolenaar <Bram@vim.org>
parents: 30641
diff changeset
50 void out_str_t_TE(void);
20450
d5d89c24eec7 patch 8.2.0779: tmode_T not used everywhere
Bram Moolenaar <Bram@vim.org>
parents: 19997
diff changeset
51 void settmode(tmode_T tmode);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
52 void starttermcap(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
53 void stoptermcap(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
54 void may_req_termresponse(void);
20768
1e2e81dbb958 patch 8.2.0936: some terminals misinterpret the code for getting cursor style
Bram Moolenaar <Bram@vim.org>
parents: 20727
diff changeset
55 void check_terminal_behavior(void);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
56 void may_req_bg_color(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
57 int swapping_screen(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
58 void scroll_start(void);
14581
bb02e9e33026 patch 8.1.0304: no redraw when using a STOP signal on Vim and then CONT
Christian Brabandt <cb@256bit.org>
parents: 14577
diff changeset
59 void cursor_on_force(void);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
60 void cursor_on(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
61 void cursor_off(void);
24428
9299d21d1d5d patch 8.2.2754: :sleep! does not always hide the cursor
Bram Moolenaar <Bram@vim.org>
parents: 20836
diff changeset
62 int cursor_is_sleeping(void);
9299d21d1d5d patch 8.2.2754: :sleep! does not always hide the cursor
Bram Moolenaar <Bram@vim.org>
parents: 20836
diff changeset
63 void cursor_sleep(void);
9299d21d1d5d patch 8.2.2754: :sleep! does not always hide the cursor
Bram Moolenaar <Bram@vim.org>
parents: 20836
diff changeset
64 void cursor_unsleep(void);
12076
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 11745
diff changeset
65 void term_cursor_mode(int forced);
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 11745
diff changeset
66 void term_cursor_color(char_u *color);
12259
48eac9bc2f82 patch 8.0.1009: Xterm cursor blinking status may be inverted
Christian Brabandt <cb@256bit.org>
parents: 12186
diff changeset
67 int blink_state_is_inverted(void);
12076
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 11745
diff changeset
68 void term_cursor_shape(int shape, int blink);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
69 void scroll_region_set(win_T *wp, int off);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
70 void scroll_region_reset(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
71 void clear_termcodes(void);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
72 void add_termcode(char_u *name, char_u *string, int flags);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
73 char_u *find_termcode(char_u *name);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
74 char_u *get_termcode(int i);
18150
0ec6521e9d80 patch 8.1.2070: mouse code is spread out
Bram Moolenaar <Bram@vim.org>
parents: 18135
diff changeset
75 int get_termcode_len(int idx);
18135
1868ec23360e patch 8.1.2062: the mouse code is spread out
Bram Moolenaar <Bram@vim.org>
parents: 17789
diff changeset
76 void del_termcode(char_u *name);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
77 void set_mouse_topline(win_T *wp);
18150
0ec6521e9d80 patch 8.1.2070: mouse code is spread out
Bram Moolenaar <Bram@vim.org>
parents: 18135
diff changeset
78 int is_mouse_topline(win_T *wp);
20727
5ffe112b1afd patch 8.2.0916: mapping with partly modifyOtherKeys code does not work
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
79 int put_string_in_typebuf(int offset, int slen, char_u *string, int new_slen, char_u *buf, int bufsize, int *buflen);
18717
14d2a210fab1 patch 8.1.2350: other text for CTRL-V in Insert mode with modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 18679
diff changeset
80 int decode_modifiers(int n);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
81 int check_termcode(int max_offset, char_u *buf, int bufsize, int *buflen);
12640
a715f0b44532 patch 8.0.1198: older compilers don't know uint8_t
Christian Brabandt <cb@256bit.org>
parents: 12632
diff changeset
82 void term_get_fg_color(char_u *r, char_u *g, char_u *b);
a715f0b44532 patch 8.0.1198: older compilers don't know uint8_t
Christian Brabandt <cb@256bit.org>
parents: 12632
diff changeset
83 void term_get_bg_color(char_u *r, char_u *g, char_u *b);
18301
506bf60a30a0 patch 8.1.2145: cannot map <C-H> when modifyOtherKeys is enabled
Bram Moolenaar <Bram@vim.org>
parents: 18150
diff changeset
84 char_u *replace_termcodes(char_u *from, char_u **bufp, int flags, int *did_simplify);
26400
d26bab4f6aca patch 8.2.3731: "set! termcap" shows codes in one column, but not keys
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
85 void show_termcodes(int flags);
7668
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
86 int show_one_termcode(char_u *name, char_u *code, int printit);
21b0a39d13ed commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents: 6874
diff changeset
87 void update_tcap(int attr);
13314
65c3e8259124 patch 8.0.1531: cannot use 24 bit colors in MS-Windows console
Christian Brabandt <cb@256bit.org>
parents: 13150
diff changeset
88 void swap_tcap(void);
28919
99c1356f4210 patch 8.2.4982: colors in terminal window are not 100% correct
Bram Moolenaar <Bram@vim.org>
parents: 26400
diff changeset
89 void ansi_color2rgb(int nr, char_u *r, char_u *g, char_u *b, char_u *ansi_idx);
13839
ca8953d36264 patch 8.0.1791: using uint8_t does not work everywhere
Christian Brabandt <cb@256bit.org>
parents: 13823
diff changeset
90 void cterm_color2rgb(int nr, char_u *r, char_u *g, char_u *b, char_u *ansi_idx);
30641
1207b6d6cf9e patch 9.0.0655: passing modifier codes to a shell running in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 30637
diff changeset
91 int term_replace_keycodes(char_u *ta_buf, int ta_len, int len_arg);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 /* vim: set ft=c : */