Problem: maparg() and mapcheck() confuse empty and non-existing.
Solution: Return <Nop> for an existing non-empty mapping. (closes #2940)
{
/* 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)
\ 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()
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 11,
/**/
10,
/**/