patch 9.1.0683: mode() returns wrong value with <Cmd> mapping
Problem: mode() returns wrong value with <Cmd> mapping
Solution: Change decision priority of VIsual_active and move
visual mode a bit further down (kuuote)
closes: #15533
Signed-off-by: kuuote <znmxodq1@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/misc1.c b/src/misc1.c
index 8348488..0898efb 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -678,17 +678,6 @@
buf[i++] = 't';
}
#endif
- else if (VIsual_active)
- {
- if (VIsual_select)
- buf[i++] = VIsual_mode + 's' - 'v';
- else
- {
- buf[i++] = VIsual_mode;
- if (restart_VIsual_select)
- buf[i++] = 's';
- }
- }
else if (State == MODE_HITRETURN || State == MODE_ASKMORE
|| State == MODE_SETWSIZE
|| State == MODE_CONFIRM)
@@ -731,6 +720,17 @@
if ((State & MODE_CMDLINE) && cmdline_overstrike())
buf[i++] = 'r';
}
+ else if (VIsual_active)
+ {
+ if (VIsual_select)
+ buf[i++] = VIsual_mode + 's' - 'v';
+ else
+ {
+ buf[i++] = VIsual_mode;
+ if (restart_VIsual_select)
+ buf[i++] = 's';
+ }
+ }
else
{
buf[i++] = 'n';