Mercurial > vim
diff src/message.c @ 25226:a9ea83a3659a v8.2.3149
patch 8.2.3149: some plugins have a problem with the error check
Commit: https://github.com/vim/vim/commit/cc7eb2aa7a7f2e6ae41f1e7cf60965c083d8a9e9
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 11 19:12:04 2021 +0200
patch 8.2.3149: some plugins have a problem with the error check
Problem: Some plugins have a problem with the error check for using
:command with -complete but without -nargs.
Solution: In legacy script only give a warning message.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 11 Jul 2021 19:15:03 +0200 |
parents | ac0211a9fb6a |
children | 0082503ff2ff |
line wrap: on
line diff
--- a/src/message.c +++ b/src/message.c @@ -3614,6 +3614,12 @@ verbose_open(void) void give_warning(char_u *message, int hl) { + give_warning_with_source(message, hl, FALSE); +} + + void +give_warning_with_source(char_u *message, int hl, int with_source) +{ // Don't do this for ":silent". if (msg_silent != 0) return; @@ -3629,8 +3635,21 @@ give_warning(char_u *message, int hl) keep_msg_attr = HL_ATTR(HLF_W); else keep_msg_attr = 0; - if (msg_attr((char *)message, keep_msg_attr) && msg_scrolled == 0) + + if (with_source) + { + // Do what msg() does, but with a column offset if the warning should + // be after the mode message. + msg_start(); + msg_source(HL_ATTR(HLF_W)); + msg_puts(" "); + msg_puts_attr((char *)message, HL_ATTR(HLF_W) | MSG_HIST); + msg_clr_eos(); + (void)msg_end(); + } + else if (msg_attr((char *)message, keep_msg_attr) && msg_scrolled == 0) set_keep_msg(message, keep_msg_attr); + msg_didout = FALSE; // overwrite this message msg_nowait = TRUE; // don't wait for this message msg_col = 0;