fix: make mode() return correct value in ex mode

When the user is in ex mode, a call to mode(1) is documented to return
"cv".  However, it does not currently do so, because the check which
checks for ex mode is nested inside a conditional which is never reached
in ex mode.  Vim uses an explicit check for exmode_active, so let's do
the same thing here.  Add some tests for this case both with a TTY and
in silent mode.
This commit is contained in:
brian m. carlson
2022-01-08 02:13:11 +00:00
parent b4fbb9dcf2
commit 600e7e3b32
2 changed files with 18 additions and 1 deletions

View File

@@ -180,7 +180,7 @@ char *get_mode(void)
buf[1] = 'x';
}
}
} else if (State & CMDLINE) {
} else if ((State & CMDLINE) || exmode_active) {
buf[0] = 'c';
if (exmode_active) {
buf[1] = 'v';