diff src/evalfunc.c @ 13986:4a41a169e5ea v8.1.0011

patch 8.1.0011: maparg() and mapcheck() confuse empty and non-existing commit https://github.com/vim/vim/commit/f88a5bc10232cc3fac92dba4e8455f4c14311f8e Author: Bram Moolenaar <Bram@vim.org> Date: Mon May 21 13:28:44 2018 +0200 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 https://github.com/vim/vim/issues/2940)
author Christian Brabandt <cb@256bit.org>
date Mon, 21 May 2018 13:30:06 +0200
parents 3b6c29f8c1a2
children e124262d435e
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7383,7 +7383,12 @@ get_maparg(typval_T *argvars, typval_T *
     {
 	/* 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)