patch 8.1.2159: some mappings are listed twice
Problem: Some mappings are listed twice.
Solution: Skip mappings duplicated for modifyOtherKeys. (closes #5064)
diff --git a/src/map.c b/src/map.c
index 00f4608..74fc60c 100644
--- a/src/map.c
+++ b/src/map.c
@@ -554,7 +554,7 @@
for ( ; mp != NULL && !got_int; mp = mp->m_next)
{
// check entries with the same mode
- if ((mp->m_mode & mode) != 0)
+ if (!mp->m_simplified && (mp->m_mode & mode) != 0)
{
if (!haskey) // show all entries
{
@@ -599,15 +599,19 @@
for (mp = *mpp; mp != NULL && !got_int; mp = *mpp)
{
- if (!(mp->m_mode & mode)) // skip entries with wrong mode
+ if ((mp->m_mode & mode) == 0)
{
+ // skip entries with wrong mode
mpp = &(mp->m_next);
continue;
}
if (!haskey) // show all entries
{
- showmap(mp, map_table != maphash);
- did_it = TRUE;
+ if (!mp->m_simplified)
+ {
+ showmap(mp, map_table != maphash);
+ did_it = TRUE;
+ }
}
else // do we have a match?
{
@@ -643,8 +647,11 @@
}
else if (!hasarg) // show matching entry
{
- showmap(mp, map_table != maphash);
- did_it = TRUE;
+ if (!mp->m_simplified)
+ {
+ showmap(mp, map_table != maphash);
+ did_it = TRUE;
+ }
}
else if (n != len) // new entry is ambiguous
{