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 #4735)
diff --git a/src/getchar.c b/src/getchar.c
index e0c8fda..0048ae0 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -4009,6 +4009,8 @@
ga_append(&mapmode, 'n'); /* :nmap */
if (mode & OP_PENDING)
ga_append(&mapmode, 'o'); /* :omap */
+ if (mode & TERMINAL)
+ ga_append(&mapmode, 't'); /* :tmap */
if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
ga_append(&mapmode, 'v'); /* :vmap */
else
diff --git a/src/testdir/test_maparg.vim b/src/testdir/test_maparg.vim
index 86e046b..f7524f5 100644
--- a/src/testdir/test_maparg.vim
+++ b/src/testdir/test_maparg.vim
@@ -29,6 +29,12 @@
\ 'nowait': 1, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'bar',
\ 'buffer': 1},
\ maparg('foo', '', 0, 1))
+ let lnum = expand('<sflnum>')
+ tmap baz foo
+ call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'baz', 'mode': 't',
+ \ 'nowait': 0, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'foo',
+ \ 'buffer': 0},
+ \ maparg('baz', 't', 0, 1))
map abc x<char-114>x
call assert_equal("xrx", maparg('abc'))
diff --git a/src/version.c b/src/version.c
index 209f3c9..2aedc6a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1759,
+/**/
1758,
/**/
1757,