mirror of
https://github.com/neovim/neovim.git
synced 2024-12-22 12:15:06 -07:00
vim-patch:8.1.0011: maparg() and mapcheck() confuse empty and non-existing (#8976)
Problem: maparg() and mapcheck() confuse empty and non-existing.
Solution: Return <Nop> for an existing non-empty mapping. (closes vim/vim#2940)
f88a5bc102
This commit is contained in:
parent
d9fcd43638
commit
207cfce3de
@ -12145,8 +12145,12 @@ static void get_maparg(typval_T *argvars, typval_T *rettv, int exact)
|
||||
if (!get_dict) {
|
||||
// Return a string.
|
||||
if (rhs != NULL) {
|
||||
rettv->vval.v_string = (char_u *)str2special_save(
|
||||
(const char *)rhs, false, false);
|
||||
if (*rhs == NUL) {
|
||||
rettv->vval.v_string = vim_strsave((char_u *)"<Nop>");
|
||||
} else {
|
||||
rettv->vval.v_string = (char_u *)str2special_save(
|
||||
(char *)rhs, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user