diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-05-21 13:28:44 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-05-21 13:28:44 +0200 |
commit | f88a5bc10232cc3fac92dba4e8455f4c14311f8e (patch) | |
tree | b4f2ad73bb4be2f42477dc5811de46ccb001e8ee | |
parent | 6bff719f7e472e918c60aa336de03e799b806c4f (diff) | |
download | vim-git-f88a5bc10232cc3fac92dba4e8455f4c14311f8e.tar.gz |
patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existingv8.1.0011
Problem: maparg() and mapcheck() confuse empty and non-existing.
Solution: Return <Nop> for an existing non-empty mapping. (closes #2940)
-rw-r--r-- | src/evalfunc.c | 7 | ||||
-rw-r--r-- | src/testdir/test_maparg.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 14 insertions, 3 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 5cee976d3..46e55b3fd 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -7383,7 +7383,12 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact) { /* Return a string. */ if (rhs != NULL) - rettv->vval.v_string = str2special_save(rhs, FALSE); + { + if (*rhs == NUL) + rettv->vval.v_string = vim_strsave((char_u *)"<Nop>"); + else + rettv->vval.v_string = str2special_save(rhs, FALSE); + } } else if (rettv_dict_alloc(rettv) != FAIL && rhs != NULL) diff --git a/src/testdir/test_maparg.vim b/src/testdir/test_maparg.vim index 9ad83836c..0fb878b04 100644 --- a/src/testdir/test_maparg.vim +++ b/src/testdir/test_maparg.vim @@ -29,9 +29,13 @@ function Test_maparg() \ maparg('foo', '', 0, 1)) map abc x<char-114>x - call assert_equal(maparg('abc'), "xrx") + call assert_equal("xrx", maparg('abc')) map abc y<S-char-114>y - call assert_equal(maparg('abc'), "yRy") + call assert_equal("yRy", maparg('abc')) + + map abc <Nop> + call assert_equal("<Nop>", maparg('abc')) + unmap abc endfunction function Test_range_map() diff --git a/src/version.c b/src/version.c index 7cf8d16b9..3ebeb772d 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 */ /**/ + 11, +/**/ 10, /**/ 9, |