mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -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:
		| @@ -7383,7 +7383,12 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact) | ||||
|     { | ||||
| 	/* 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) | ||||
|   | ||||
| @@ -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() | ||||
|   | ||||
| @@ -761,6 +761,8 @@ static char *(features[]) = | ||||
|  | ||||
| static int included_patches[] = | ||||
| {   /* Add new patch number below this line */ | ||||
| /**/ | ||||
|     11, | ||||
| /**/ | ||||
|     10, | ||||
| /**/ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user