aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotomo <notomo.motono@gmail.com>2019-07-28 07:44:28 +0900
committernotomo <notomo.motono@gmail.com>2019-07-28 08:00:52 +0900
commit08c7e206cc3f45b4185a3ca33ce2c4616f699cca (patch)
tree8d3743e3c33f2eae1e7ef9d52cf129fb6a8168ab
parent7f5a113f659fc88c2e9566c3dcdc1c8f0beccc5a (diff)
downloadrneovim-08c7e206cc3f45b4185a3ca33ce2c4616f699cca.tar.gz
rneovim-08c7e206cc3f45b4185a3ca33ce2c4616f699cca.tar.bz2
rneovim-08c7e206cc3f45b4185a3ca33ce2c4616f699cca.zip
vim-patch:8.1.1759: no mode char for terminal mapping from maparg()
Problem: No mode char for terminal mapping from maparg(). Solution: Check for TERMINAL mode. (closes vim/vim#4735) https://github.com/vim/vim/commit/14371ed69778107654e39268d0d90982e53ad6e0
-rw-r--r--src/nvim/getchar.c2
-rw-r--r--src/nvim/testdir/test_maparg.vim4
-rw-r--r--test/functional/api/keymap_spec.lua5
3 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 28d37f3581..52f69343af 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -3304,6 +3304,8 @@ char *map_mode_to_chars(int mode)
ga_append(&mapmode, 'n'); /* :nmap */
if (mode & OP_PENDING)
ga_append(&mapmode, 'o'); /* :omap */
+ if (mode & TERM_FOCUS)
+ ga_append(&mapmode, 't'); /* :tmap */
if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
ga_append(&mapmode, 'v'); /* :vmap */
else {
diff --git a/src/nvim/testdir/test_maparg.vim b/src/nvim/testdir/test_maparg.vim
index 0fb878b04a..ee16a22398 100644
--- a/src/nvim/testdir/test_maparg.vim
+++ b/src/nvim/testdir/test_maparg.vim
@@ -27,6 +27,10 @@ function Test_maparg()
call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ',
\ 'nowait': 1, 'expr': 0, 'sid': sid, 'rhs': 'bar', 'buffer': 1},
\ maparg('foo', '', 0, 1))
+ tmap baz foo
+ call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'baz', 'mode': 't',
+ \ 'nowait': 0, 'expr': 0, 'sid': sid, 'rhs': 'foo', 'buffer': 0},
+ \ maparg('baz', 't', 0, 1))
map abc x<char-114>x
call assert_equal("xrx", maparg('abc'))
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
index b3f6bb7895..73c55a342c 100644
--- a/test/functional/api/keymap_spec.lua
+++ b/test/functional/api/keymap_spec.lua
@@ -346,11 +346,6 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
to_return.sid = not opts.sid and 0 or opts.sid
to_return.buffer = not opts.buffer and 0 or opts.buffer
- -- mode 't' doesn't print when calling maparg
- if mode == 't' then
- to_return.mode = ''
- end
-
return to_return
end