diff options
-rw-r--r-- | src/nvim/eval.c | 8 | ||||
-rw-r--r-- | src/nvim/message.c | 4 | ||||
-rw-r--r-- | test/functional/ex_cmds/debug_spec.lua | 142 | ||||
-rw-r--r-- | test/functional/legacy/108_backtrace_debug_commands_spec.lua | 2 | ||||
-rw-r--r-- | test/functional/ui/cmdline_spec.lua | 82 | ||||
-rw-r--r-- | test/functional/ui/embed_spec.lua | 2 |
6 files changed, 120 insertions, 120 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index a115e60c7d..5d2bdc210b 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -19538,6 +19538,7 @@ void ex_echo(exarg_T *eap) typval_T rettv; bool needclr = true; bool atstart = true; + const int did_emsg_before = did_emsg; if (eap->skip) ++emsg_skip; @@ -19552,7 +19553,7 @@ void ex_echo(exarg_T *eap) // Report the invalid expression unless the expression evaluation // has been cancelled due to an aborting error, an interrupt, or an // exception. - if (!aborting()) { + if (!aborting() && did_emsg == did_emsg_before) { EMSG2(_(e_invexpr2), p); } need_clr_eos = false; @@ -19641,7 +19642,7 @@ void ex_execute(exarg_T *eap) int ret = OK; char_u *p; garray_T ga; - int save_did_emsg; + int save_did_emsg = did_emsg; ga_init(&ga, 1, 80); @@ -19655,8 +19656,9 @@ void ex_execute(exarg_T *eap) * has been cancelled due to an aborting error, an interrupt, or an * exception. */ - if (!aborting()) + if (!aborting() && did_emsg == save_did_emsg) { EMSG2(_(e_invexpr2), p); + } ret = FAIL; break; } diff --git a/src/nvim/message.c b/src/nvim/message.c index 26fa8fc7f1..6de81a8aaf 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -505,7 +505,7 @@ int emsg(const char_u *s_) */ if (cause_errthrow((char_u *)s, severe, &ignore) == true) { if (!ignore) { - did_emsg = true; + did_emsg++; } return true; } @@ -554,7 +554,7 @@ int emsg(const char_u *s_) } else { flush_buffers(FLUSH_MINIMAL); // flush internal buffers } - did_emsg = true; // flag for DoOneCmd() + did_emsg++; // flag for DoOneCmd() } emsg_on_display = true; // remember there is an error message diff --git a/test/functional/ex_cmds/debug_spec.lua b/test/functional/ex_cmds/debug_spec.lua index 5dad8098ea..a4d381d3f1 100644 --- a/test/functional/ex_cmds/debug_spec.lua +++ b/test/functional/ex_cmds/debug_spec.lua @@ -7,7 +7,7 @@ describe(':debug', function() local screen before_each(function() clear() - screen = Screen.new(50, 14) + screen = Screen.new(30, 14) screen:set_default_attr_ids({ [1] = {bold = true, foreground = Screen.colors.Blue1}, [2] = {bold = true, reverse = true}, @@ -19,92 +19,92 @@ describe(':debug', function() it('scrolls messages correctly', function() feed(':echoerr bork<cr>') screen:expect([[ - | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {2: }| - {3:E121: Undefined variable: bork} | - {3:E15: Invalid expression: bork} | - {4:Press ENTER or type command to continue}^ | + | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {2: }| + {3:E121: Undefined variable: bork}| + | + {4:Press ENTER or type command to}| + {4: continue}^ | ]]) feed(':debug echo "aa"| echo "bb"<cr>') screen:expect([[ - | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {2: }| - {3:E121: Undefined variable: bork} | - {3:E15: Invalid expression: bork} | - Entering Debug mode. Type "cont" to continue. | - cmd: echo "aa"| echo "bb" | - >^ | + | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {2: }| + {3:E121: Undefined variable: bork}| + | + {4:Press ENTER or type command to}| + Entering Debug mode. Type "co| + nt" to continue. | + cmd: echo "aa"| echo "bb" | + >^ | ]]) feed('step<cr>') screen:expect([[ - | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {2: }| - {3:E121: Undefined variable: bork} | - {3:E15: Invalid expression: bork} | - Entering Debug mode. Type "cont" to continue. | - cmd: echo "aa"| echo "bb" | - >step | - aa | - cmd: echo "bb" | - >^ | + | + {1:~ }| + {1:~ }| + {2: }| + {3:E121: Undefined variable: bork}| + | + {4:Press ENTER or type command to}| + Entering Debug mode. Type "co| + nt" to continue. | + cmd: echo "aa"| echo "bb" | + >step | + aa | + cmd: echo "bb" | + >^ | ]]) feed('step<cr>') screen:expect([[ - | - {1:~ }| - {1:~ }| - {2: }| - {3:E121: Undefined variable: bork} | - {3:E15: Invalid expression: bork} | - Entering Debug mode. Type "cont" to continue. | - cmd: echo "aa"| echo "bb" | - >step | - aa | - cmd: echo "bb" | - >step | - bb | - {4:Press ENTER or type command to continue}^ | + {2: }| + {3:E121: Undefined variable: bork}| + | + {4:Press ENTER or type command to}| + Entering Debug mode. Type "co| + nt" to continue. | + cmd: echo "aa"| echo "bb" | + >step | + aa | + cmd: echo "bb" | + >step | + bb | + {4:Press ENTER or type command to}| + {4: continue}^ | ]]) feed('<cr>') screen:expect([[ - ^ | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - | + ^ | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | ]]) end) end) diff --git a/test/functional/legacy/108_backtrace_debug_commands_spec.lua b/test/functional/legacy/108_backtrace_debug_commands_spec.lua index 9ace4ef093..1c1a2095d5 100644 --- a/test/functional/legacy/108_backtrace_debug_commands_spec.lua +++ b/test/functional/legacy/108_backtrace_debug_commands_spec.lua @@ -121,7 +121,6 @@ describe('108', function() Error detected while processing function Foo[2]..Bar[2]..Bazz: line 3: E121: Undefined variable: var3 - E15: Invalid expression: var3 here var3 is defined with "another var": another var @@ -129,7 +128,6 @@ describe('108', function() Error detected while processing function Foo[2]..Bar: line 3: E121: Undefined variable: var2 - E15: Invalid expression: var2 here var2 is defined with 10: 10 diff --git a/test/functional/ui/cmdline_spec.lua b/test/functional/ui/cmdline_spec.lua index 0ebb62f78f..5d112d7f35 100644 --- a/test/functional/ui/cmdline_spec.lua +++ b/test/functional/ui/cmdline_spec.lua @@ -117,60 +117,60 @@ local function test_cmdline(linegrid) end) it('but not with scrolled messages', function() - screen:try_resize(50,10) + screen:try_resize(35,10) feed(':echoerr doesnotexist<cr>') screen:expect{grid=[[ - | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {3: }| - {4:E121: Undefined variable: doesnotexist} | - {4:E15: Invalid expression: doesnotexist} | - {5:Press ENTER or type command to continue}^ | + | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {3: }| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {5:inue}^ | ]]} feed(':echoerr doesnotexist<cr>') screen:expect{grid=[[ - | - {1:~ }| - {1:~ }| - {1:~ }| - {3: }| - {4:E121: Undefined variable: doesnotexist} | - {4:E15: Invalid expression: doesnotexist} | - {4:E121: Undefined variable: doesnotexist} | - {4:E15: Invalid expression: doesnotexist} | - {5:Press ENTER or type command to continue}^ | + | + {1:~ }| + {3: }| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {5:inue}^ | ]]} feed(':echoerr doesnotexist<cr>') screen:expect{grid=[[ - | - {1:~ }| - {3: }| - {4:E121: Undefined variable: doesnotexist} | - {4:E15: Invalid expression: doesnotexist} | - {4:E121: Undefined variable: doesnotexist} | - {4:E15: Invalid expression: doesnotexist} | - {4:E121: Undefined variable: doesnotexist} | - {4:E15: Invalid expression: doesnotexist} | - {5:Press ENTER or type command to continue}^ | + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {5:inue}^ | ]]} feed('<cr>') screen:expect{grid=[[ - ^ | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {3:n }| - | + ^ | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {3:n }| + | ]]} end) end) diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua index a7f5cc2bfa..10dbc68672 100644 --- a/test/functional/ui/embed_spec.lua +++ b/test/functional/ui/embed_spec.lua @@ -28,9 +28,9 @@ local function test_embed(ext_linegrid) | | | + | Error detected while processing pre-vimrc command line: | E121: Undefined variable: invalid | - E15: Invalid expression: invalid+ | Press ENTER or type command to continue^ | ]]) |