Mercurial > vim
annotate src/proto/channel.pro @ 19265:ce8c47ed54e5 v8.2.0191
patch 8.2.0191: cannot put a terminal in a popup window
Commit: https://github.com/vim/vim/commit/219c7d063823498be22aae46dd024d77b5fb2a58
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 1 21:57:29 2020 +0100
patch 8.2.0191: cannot put a terminal in a popup window
Problem: Cannot put a terminal in a popup window.
Solution: Allow opening a terminal in a popup window. It will always have
keyboard focus until closed.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 01 Feb 2020 22:00:04 +0100 |
parents | 5ed8297121fa |
children | e373843e2980 |
rev | line source |
---|---|
7743
6069f43cea4e
commit https://github.com/vim/vim/commit/e0874f8cbcddfcf9965a85ba35199964efb1d01a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 /* channel.c */ |
8498
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
2 void ch_logfile(char_u *fname, char_u *opt); |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8094
diff
changeset
|
3 int ch_log_active(void); |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
4 channel_T *add_channel(void); |
10240
175b1116f96a
commit https://github.com/vim/vim/commit/b9c31e71f5a4653a27e81c21226039bfa35b9131
Christian Brabandt <cb@256bit.org>
parents:
10233
diff
changeset
|
5 int has_any_channel(void); |
8498
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
6 int channel_unref(channel_T *channel); |
8863
e1b84109506a
commit https://github.com/vim/vim/commit/107e1eef1df3b786ad3ad49fbdb9e058649303b5
Christian Brabandt <cb@256bit.org>
parents:
8859
diff
changeset
|
7 int free_unused_channels_contents(int copyID, int mask); |
e1b84109506a
commit https://github.com/vim/vim/commit/107e1eef1df3b786ad3ad49fbdb9e058649303b5
Christian Brabandt <cb@256bit.org>
parents:
8859
diff
changeset
|
8 void free_unused_channels(int copyID, int mask); |
7770
42c1a4e63d12
commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents:
7743
diff
changeset
|
9 void channel_gui_register_all(void); |
8210
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
10 channel_T *channel_open(char *hostname, int port_in, int waittime, void (*nb_close_cb)(void)); |
8059
19304db153bc
commit https://github.com/vim/vim/commit/d807036d10615b960c814ef3890ecad335b57f56
Christian Brabandt <cb@256bit.org>
parents:
8049
diff
changeset
|
11 void channel_set_pipes(channel_T *channel, sock_T in, sock_T out, sock_T err); |
8386
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8318
diff
changeset
|
12 void channel_set_job(channel_T *channel, job_T *job, jobopt_T *options); |
9087
d4606ae170aa
commit https://github.com/vim/vim/commit/e0f76d00979c972329f6c371463a20da61ccad65
Christian Brabandt <cb@256bit.org>
parents:
9058
diff
changeset
|
13 void channel_buffer_free(buf_T *buf); |
8761
f8707ec9efe4
commit https://github.com/vim/vim/commit/8b877ac38e96424a08a8b8eb713ef4b3cf0064be
Christian Brabandt <cb@256bit.org>
parents:
8669
diff
changeset
|
14 void channel_write_any_lines(void); |
8422
5d2c84be23b5
commit https://github.com/vim/vim/commit/99ef06296f3c37490511c03786a2c8672e015c56
Christian Brabandt <cb@256bit.org>
parents:
8386
diff
changeset
|
15 void channel_write_new_lines(buf_T *buf); |
10259
a09db7a4afe0
commit https://github.com/vim/vim/commit/dc0ccaee68ca24d10050117fbec757ad33590a17
Christian Brabandt <cb@256bit.org>
parents:
10240
diff
changeset
|
16 readq_T *channel_peek(channel_T *channel, ch_part_T part); |
9246
6ee88fa405b3
commit https://github.com/vim/vim/commit/5f1032d2a55b9417a0a6fa225e35089c98a5a419
Christian Brabandt <cb@256bit.org>
parents:
9215
diff
changeset
|
17 char_u *channel_first_nl(readq_T *node); |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15160
diff
changeset
|
18 char_u *channel_get(channel_T *channel, ch_part_T part, int *outlen); |
10259
a09db7a4afe0
commit https://github.com/vim/vim/commit/dc0ccaee68ca24d10050117fbec757ad33590a17
Christian Brabandt <cb@256bit.org>
parents:
10240
diff
changeset
|
19 void channel_consume(channel_T *channel, ch_part_T part, int len); |
a09db7a4afe0
commit https://github.com/vim/vim/commit/dc0ccaee68ca24d10050117fbec757ad33590a17
Christian Brabandt <cb@256bit.org>
parents:
10240
diff
changeset
|
20 int channel_collapse(channel_T *channel, ch_part_T part, int want_nl); |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
21 int channel_can_write_to(channel_T *channel); |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
22 int channel_is_open(channel_T *channel); |
10233
d709622a18c9
commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents:
10054
diff
changeset
|
23 char *channel_status(channel_T *channel, int req_part); |
8240
60586ce747c4
commit https://github.com/vim/vim/commit/8b374215ccd35003b95ba1df8f12e03bf8a8adc3
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
24 void channel_close(channel_T *channel, int invoke_close_cb); |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
25 void channel_clear(channel_T *channel); |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
26 void channel_free_all(void); |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
17789
diff
changeset
|
27 int channel_in_blocking_wait(void); |
12240
24abce52ad20
patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents:
12154
diff
changeset
|
28 void channel_handle_events(int only_keep_open); |
12250
ac8b2f9c1409
patch 8.0.1005: terminal without job updates slowly in GUI
Christian Brabandt <cb@256bit.org>
parents:
12240
diff
changeset
|
29 int channel_any_keep_open(void); |
12154
71e10b81226d
patch 8.0.0957: a terminal job can deadlock when sending many keys
Christian Brabandt <cb@256bit.org>
parents:
12096
diff
changeset
|
30 void channel_set_nonblock(channel_T *channel, ch_part_T part); |
12240
24abce52ad20
patch 8.0.1000: cannot open a terminal without running a job in it
Christian Brabandt <cb@256bit.org>
parents:
12154
diff
changeset
|
31 int channel_send(channel_T *channel, ch_part_T part, char_u *buf_arg, int len_arg, char *fun); |
12584
f28067b83dec
patch 8.0.1170: using termdebug results in 100% CPU time
Christian Brabandt <cb@256bit.org>
parents:
12250
diff
changeset
|
32 int channel_poll_setup(int nfd_in, void *fds_in, int *towait); |
7743
6069f43cea4e
commit https://github.com/vim/vim/commit/e0874f8cbcddfcf9965a85ba35199964efb1d01a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 int channel_poll_check(int ret_in, void *fds_in); |
12584
f28067b83dec
patch 8.0.1170: using termdebug results in 100% CPU time
Christian Brabandt <cb@256bit.org>
parents:
12250
diff
changeset
|
34 int channel_select_setup(int maxfd_in, void *rfds_in, void *wfds_in, struct timeval *tv, struct timeval **tvp); |
8761
f8707ec9efe4
commit https://github.com/vim/vim/commit/8b877ac38e96424a08a8b8eb713ef4b3cf0064be
Christian Brabandt <cb@256bit.org>
parents:
8669
diff
changeset
|
35 int channel_select_check(int ret_in, void *rfds_in, void *wfds_in); |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
7868
diff
changeset
|
36 int channel_parse_messages(void); |
10418
56cb9538386c
commit https://github.com/vim/vim/commit/8a8199e4a1814b10630a770165502abb1121cd1b
Christian Brabandt <cb@256bit.org>
parents:
10259
diff
changeset
|
37 int channel_any_readahead(void); |
7931
2679e636e862
commit https://github.com/vim/vim/commit/4b6a6dcbe7bd13170c4884cc17acb1eac2c633d1
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
38 int set_ref_in_channel(int copyID); |
8498
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
39 void clear_job_options(jobopt_T *opt); |
12056
0498547dace0
patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents:
11937
diff
changeset
|
40 int get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2); |
0498547dace0
patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents:
11937
diff
changeset
|
41 void job_free_all(void); |
13847
fa0dcdaec6a3
patch 8.0.1795: lose contact with jobs when :gui forks
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
42 int job_any_running(void); |
12096
0a61213afdd2
patch 8.0.0928: MS-Windows: passing arglist to job has escaping problems
Christian Brabandt <cb@256bit.org>
parents:
12056
diff
changeset
|
43 int win32_build_cmd(list_T *l, garray_T *gap); |
11719
13ecb3e64399
patch 8.0.0742: terminal feature does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11690
diff
changeset
|
44 void job_cleanup(job_T *job); |
9058
87c2e43a4a12
commit https://github.com/vim/vim/commit/b8d4905592fc26fcd09180d7d6bfefd899f2f6c6
Christian Brabandt <cb@256bit.org>
parents:
9007
diff
changeset
|
45 int set_ref_in_job(int copyID); |
8498
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
46 void job_unref(job_T *job); |
8863
e1b84109506a
commit https://github.com/vim/vim/commit/107e1eef1df3b786ad3ad49fbdb9e058649303b5
Christian Brabandt <cb@256bit.org>
parents:
8859
diff
changeset
|
47 int free_unused_jobs_contents(int copyID, int mask); |
e1b84109506a
commit https://github.com/vim/vim/commit/107e1eef1df3b786ad3ad49fbdb9e058649303b5
Christian Brabandt <cb@256bit.org>
parents:
8859
diff
changeset
|
48 void free_unused_jobs(int copyID, int mask); |
12056
0498547dace0
patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents:
11937
diff
changeset
|
49 job_T *job_alloc(void); |
8498
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
50 void job_set_options(job_T *job, jobopt_T *opt); |
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
51 void job_stop_on_exit(void); |
9189
4b55d8e162d4
commit https://github.com/vim/vim/commit/cf7c11a9479ba7ce775b86c7a846fae48321d260
Christian Brabandt <cb@256bit.org>
parents:
9143
diff
changeset
|
52 int has_pending_job(void); |
15160
ec67c6b8ef12
patch 8.1.0590: when a job ends the closed channels are not handled
Bram Moolenaar <Bram@vim.org>
parents:
14103
diff
changeset
|
53 int job_check_ended(void); |
19245
5ed8297121fa
patch 8.2.0181: problems parsing :term arguments
Bram Moolenaar <Bram@vim.org>
parents:
18104
diff
changeset
|
54 job_T *job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg, job_T **term_job); |
8498
42277980a76d
commit https://github.com/vim/vim/commit/8e2c942ce49f2555d7dc2088cf3aa856820c5e32
Christian Brabandt <cb@256bit.org>
parents:
8491
diff
changeset
|
55 char *job_status(job_T *job); |
11690
ce434212d682
patch 8.0.0728: the terminal structure is never freed
Christian Brabandt <cb@256bit.org>
parents:
11670
diff
changeset
|
56 int job_stop(job_T *job, typval_T *argvars, char *type); |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
13847
diff
changeset
|
57 void invoke_prompt_callback(void); |
14103
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14065
diff
changeset
|
58 int invoke_prompt_interrupt(void); |
17170
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
59 void f_prompt_setcallback(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
60 void f_prompt_setinterrupt(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
61 void f_prompt_setprompt(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
62 void f_ch_canread(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
63 void f_ch_close(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
64 void f_ch_close_in(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
65 void f_ch_getbufnr(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
66 void f_ch_getjob(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
67 void f_ch_info(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
68 void f_ch_log(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
69 void f_ch_logfile(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
70 void f_ch_open(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
71 void f_ch_read(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
72 void f_ch_readblob(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
73 void f_ch_readraw(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
74 void f_ch_evalexpr(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
75 void f_ch_sendexpr(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
76 void f_ch_evalraw(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
77 void f_ch_sendraw(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
78 void f_ch_setoptions(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
79 void f_ch_status(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
80 void f_job_getchannel(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
81 void f_job_info(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
82 void f_job_setoptions(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
83 void f_job_start(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
84 void f_job_status(typval_T *argvars, typval_T *rettv); |
cee12488e4bc
patch 8.1.1584: the evalfunc.c file is getting too big
Bram Moolenaar <Bram@vim.org>
parents:
16872
diff
changeset
|
85 void f_job_stop(typval_T *argvars, typval_T *rettv); |
7743
6069f43cea4e
commit https://github.com/vim/vim/commit/e0874f8cbcddfcf9965a85ba35199964efb1d01a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
86 /* vim: set ft=c : */ |