aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJongwook Choi <wookayin@gmail.com>2023-10-12 19:27:45 -0400
committerGitHub <noreply@github.com>2023-10-13 07:27:45 +0800
commitebe489d8f0edbb3538a59733289d8969d1ffea22 (patch)
tree88dc7ce8eb96bab412f6ffdb739fb151903d4364 /src
parent2c9f22e7e4947e1865ab18c61fbc0199be8b323d (diff)
downloadrneovim-ebe489d8f0edbb3538a59733289d8969d1ffea22.tar.gz
rneovim-ebe489d8f0edbb3538a59733289d8969d1ffea22.tar.bz2
rneovim-ebe489d8f0edbb3538a59733289d8969d1ffea22.zip
fix: allow multiline message for echoerr (#25380)
PROBLEM: Currently `:echoerr` prints multi-line strings in a single line as `:echom` does (Note: `:echon` can print multi-line strings well). This makes stacktrace printed via echoerr difficult to read. Example code: try lua error("lua stacktrace") catch echoerr v:exception endtry Output: Error detected while processing a.vim[5]..a.vim: line 4: Vim(lua):E5108: Error executing lua [string ":lua"]:1: lua stacktrace^@stack traceback:^@^I[C]: in function 'error'^@^I[string ":lua"]:1: in main chunk SOLUTION: Allow echoerr to print multiline messages (e.g., lua exceptions), because this command is usually used to print stacktraces. Output after the fix: Error detected while processing a.vim[5]..a.vim: line 4: Vim(lua):E5108: Error executing lua [string ":lua"]:1: lua stacktrace stack traceback: [C]: in function 'error' [string ":lua"]:1: in main chunk
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index f9b32d758d..74b1dbfb72 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -8106,7 +8106,7 @@ void ex_execute(exarg_T *eap)
// We don't want to abort following commands, restore did_emsg.
int save_did_emsg = did_emsg;
msg_ext_set_kind("echoerr");
- emsg(ga.ga_data);
+ emsg_multiline(ga.ga_data, true);
if (!force_abort) {
did_emsg = save_did_emsg;
}