summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-06-17 22:19:12 +0200
committerBram Moolenaar <Bram@vim.org>2018-06-17 22:19:12 +0200
commitdcdeaaf1505b96aa7a31ccd4becc92c32119bdda (patch)
tree52bde88c1e1a7be98f75ceeed8f104799ed41f2d
parentb3307b5e7e7bd3962b0d5c61a94e638564c146b0 (diff)
downloadvim-git-8.1.0072.tar.gz
patch 8.1.0072: use of 'termwinkey' is inconsistentv8.1.0072
Problem: Use of 'termwinkey' is inconsistent. Solution: Change the documentation and the behavior. (Ken Takata)
-rw-r--r--runtime/doc/terminal.txt3
-rw-r--r--src/terminal.c11
-rw-r--r--src/version.c2
3 files changed, 12 insertions, 4 deletions
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 8f95fc227..a6c40f6ef 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -87,7 +87,8 @@ to the job. For example:
'termwinkey' CTRL-W move focus to the next window
'termwinkey' : enter an Ex command
'termwinkey' 'termwinkey' send 'termwinkey' to the job in the terminal
- 'termwinkey' . send a CTRL-W to the job in the terminal
+ 'termwinkey' . send 'termwinkey' to the job in the terminal
+ 'termwinkey' CTRL-\ send a CTRL-\ to the job in the terminal
'termwinkey' N go to terminal Normal mode, see below
'termwinkey' CTRL-N same as CTRL-W N
'termwinkey' CTRL-C same as |t_CTRL-W_CTRL-C|
diff --git a/src/terminal.c b/src/terminal.c
index 9b7bc038d..f4fa55165 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -2107,7 +2107,11 @@ terminal_loop(int blocking)
in_terminal_loop = curbuf->b_term;
if (*curwin->w_p_twk != NUL)
+ {
termwinkey = string_to_key(curwin->w_p_twk, TRUE);
+ if (termwinkey == Ctrl_W)
+ termwinkey = 0;
+ }
position_cursor(curwin, &curbuf->b_term->tl_cursor_pos);
may_set_cursor_props(curbuf->b_term);
@@ -2203,12 +2207,13 @@ terminal_loop(int blocking)
/* "CTRL-W CTRL-C" or 'termwinkey' CTRL-C: end the job */
mch_signal_job(curbuf->b_term->tl_job, (char_u *)"kill");
}
- else if (termwinkey == 0 && c == '.')
+ else if (c == '.')
{
/* "CTRL-W .": send CTRL-W to the job */
- c = Ctrl_W;
+ /* "'termwinkey' .": send 'termwinkey' to the job */
+ c = termwinkey == 0 ? Ctrl_W : termwinkey;
}
- else if (termwinkey == 0 && c == Ctrl_BSL)
+ else if (c == Ctrl_BSL)
{
/* "CTRL-W CTRL-\": send CTRL-\ to the job */
c = Ctrl_BSL;
diff --git a/src/version.c b/src/version.c
index 366e845bf..6ce67802d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 72,
+/**/
71,
/**/
70,