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:
parent
6bff719f7e
commit
f88a5bc102
@ -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)
|
||||||
|
@ -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()
|
||||||
|
@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user