diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-07-29 15:34:26 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-07-29 15:34:26 +0200 |
commit | 612cc3888b136e80485132d9f997ed457dbc5501 (patch) | |
tree | d200810f73b2c0c5626b249c8dbf0384448e19c8 /src/evalfunc.c | |
parent | 91f84f6e11cd879d43d651c0903d85bff95f0716 (diff) |
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert modev8.1.0225
Problem: Mode() does not indicate using CTRL-O from Insert mode.
Solution: Add "niI", "niR" and "niV" to mode() result. (closes #3000)
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 12eac8d548..40fbf373a4 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -8366,10 +8366,9 @@ f_mkdir(typval_T *argvars, typval_T *rettv) static void f_mode(typval_T *argvars, typval_T *rettv) { - char_u buf[3]; + char_u buf[4]; - buf[1] = NUL; - buf[2] = NUL; + vim_memset(buf, 0, sizeof(buf)); if (time_for_testing == 93784) { @@ -8435,6 +8434,12 @@ f_mode(typval_T *argvars, typval_T *rettv) buf[0] = 'n'; if (finish_op) buf[1] = 'o'; + else if (restart_edit == 'I' || restart_edit == 'R' + || restart_edit == 'V') + { + buf[1] = 'i'; + buf[2] = restart_edit; + } } /* Clear out the minor mode when the argument is not a non-zero number or |