From: Bram Moolenaar Date: Sat, 27 Jul 2019 19:05:21 +0000 (+0200) Subject: patch 8.1.1759: no mode char for terminal mapping from maparg() X-Git-Tag: v8.1.1759 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14371ed69778107654e39268d0d90982e53ad6e0;p=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 #4735) --- diff --git a/src/getchar.c b/src/getchar.c index e0c8fdad7..0048ae0f6 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -4009,6 +4009,8 @@ map_mode_to_chars(int mode) 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 86e046b5d..f7524f56d 100644 --- a/src/testdir/test_maparg.vim +++ b/src/testdir/test_maparg.vim @@ -29,6 +29,12 @@ function Test_maparg() \ 'nowait': 1, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'bar', \ 'buffer': 1}, \ maparg('foo', '', 0, 1)) + let lnum = expand('') + 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 xx call assert_equal("xrx", maparg('abc')) diff --git a/src/version.c b/src/version.c index 209f3c966..2aedc6a27 100644 --- a/src/version.c +++ b/src/version.c @@ -777,6 +777,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1759, /**/ 1758, /**/