aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-08-28 07:22:27 +0800
committerGitHub <noreply@github.com>2022-08-28 07:22:27 +0800
commit7a9b5937966d3db852c84b8eb232e77d92d3c355 (patch)
tree1ab737cf0e4efccd6729421813e7f9c8c38420ac /src
parent09c6ce8c4e4c6415cca9b834539ed0df461373f6 (diff)
downloadrneovim-7a9b5937966d3db852c84b8eb232e77d92d3c355.tar.gz
rneovim-7a9b5937966d3db852c84b8eb232e77d92d3c355.tar.bz2
rneovim-7a9b5937966d3db852c84b8eb232e77d92d3c355.zip
vim-patch:8.2.3813: confusing error when using :cc without error list (#19978)
Problem: confusing error when using :cc without error list. (Gary Johnson) Solution: Give the "no errors" error. https://github.com/vim/vim/commit/a5d78d1f1123d9ffccd5ba58f2d2dec44cc59e94 Cherry-pick e_quickfix -> e_no_errors rename from patch 8.2.3190.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_docmd.c3
-rw-r--r--src/nvim/globals.h2
-rw-r--r--src/nvim/quickfix.c10
-rw-r--r--src/nvim/testdir/test_quickfix.vim6
4 files changed, 15 insertions, 6 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index eadde7a725..8cf5d56dd7 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -3586,6 +3586,9 @@ char *invalid_range(exarg_T *eap)
assert(eap->line2 >= 0);
// No error for value that is too big, will use the last entry.
if (eap->line2 <= 0) {
+ if (eap->addr_count == 0) {
+ return _(e_no_errors);
+ }
return _(e_invrange);
}
break;
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index 7b93fbc852..64a43a720e 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -920,7 +920,7 @@ EXTERN char e_patnotf2[] INIT(= N_("E486: Pattern not found: %s"));
EXTERN char e_positive[] INIT(= N_("E487: Argument must be positive"));
EXTERN char e_prev_dir[] INIT(= N_("E459: Cannot go back to previous directory"));
-EXTERN char e_quickfix[] INIT(= N_("E42: No Errors"));
+EXTERN char e_no_errors[] INIT(= N_("E42: No Errors"));
EXTERN char e_loclist[] INIT(= N_("E776: No location list"));
EXTERN char e_re_damg[] INIT(= N_("E43: Damaged match string"));
EXTERN char e_re_corr[] INIT(= N_("E44: Corrupted regexp program"));
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index f528bc651b..16415e0f57 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -2932,7 +2932,7 @@ static void qf_jump_newwin(qf_info_T *qi, int dir, int errornr, int forceit, boo
}
if (qf_stack_empty(qi) || qf_list_empty(qf_get_curlist(qi))) {
- emsg(_(e_quickfix));
+ emsg(_(e_no_errors));
return;
}
@@ -3111,7 +3111,7 @@ void qf_list(exarg_T *eap)
}
if (qf_stack_empty(qi) || qf_list_empty(qf_get_curlist(qi))) {
- emsg(_(e_quickfix));
+ emsg(_(e_no_errors));
return;
}
@@ -3467,7 +3467,7 @@ void qf_view_result(bool split)
qi = GET_LOC_LIST(curwin);
}
if (qf_list_empty(qf_get_curlist(qi))) {
- emsg(_(e_quickfix));
+ emsg(_(e_no_errors));
return;
}
@@ -4898,7 +4898,7 @@ void ex_cbelow(exarg_T *eap)
|| eap->cmdidx == CMD_cafter) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
if (!(curbuf->b_has_qf_entry & buf_has_flag)) {
- emsg(_(e_quickfix));
+ emsg(_(e_no_errors));
return;
}
@@ -4910,7 +4910,7 @@ void ex_cbelow(exarg_T *eap)
qf_list_T *qfl = qf_get_curlist(qi);
// check if the list has valid errors
if (!qf_list_has_valid_entries(qfl)) {
- emsg(_(e_quickfix));
+ emsg(_(e_no_errors));
return;
}
diff --git a/src/nvim/testdir/test_quickfix.vim b/src/nvim/testdir/test_quickfix.vim
index f6d573d76b..8c9e39570f 100644
--- a/src/nvim/testdir/test_quickfix.vim
+++ b/src/nvim/testdir/test_quickfix.vim
@@ -85,6 +85,12 @@ func s:setup_commands(cchar)
endif
endfunc
+" This must be run before any error lists are created.
+func Test_AA_cc_no_errors()
+ call assert_fails('cc', 'E42:')
+ call assert_fails('ll', 'E42:')
+endfunc
+
" Tests for the :clist and :llist commands
func XlistTests(cchar)
call s:setup_commands(a:cchar)