aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval.c8
-rw-r--r--src/nvim/message.c4
-rw-r--r--test/functional/ex_cmds/debug_spec.lua142
-rw-r--r--test/functional/legacy/108_backtrace_debug_commands_spec.lua2
-rw-r--r--test/functional/ui/cmdline_spec.lua82
-rw-r--r--test/functional/ui/embed_spec.lua2
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^ |
]])