0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing

Problem:    maparg() and mapcheck() confuse empty and non-existing.
Solution:   Return <Nop> for an existing non-empty mapping. (closes #2940)
This commit is contained in:
Bram Moolenaar 2018-05-21 13:28:44 +02:00
parent 6bff719f7e
commit f88a5bc102
3 changed files with 14 additions and 3 deletions

View File

@ -7383,7 +7383,12 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact)
{ {
/* Return a string. */ /* Return a string. */
if (rhs != NULL) 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) else if (rettv_dict_alloc(rettv) != FAIL && rhs != NULL)

View File

@ -29,9 +29,13 @@ function Test_maparg()
\ maparg('foo', '', 0, 1)) \ maparg('foo', '', 0, 1))
map abc x<char-114>x 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 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 endfunction
function Test_range_map() function Test_range_map()

View File

@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
11,
/**/ /**/
10, 10,
/**/ /**/