From d0686540f56154e269e11eb0cc6cd3eb759f2b77 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 7 Aug 2022 13:47:46 +0800 Subject: vim-patch:8.2.1280: Ex command error cannot contain an argument Problem: Ex command error cannot contain an argument. Solution: Add ex_errmsg() and translate earlier. Use e_trailing_arg where possible. https://github.com/vim/vim/commit/8930caaa1a283092aca81fdbc3fcf15c7eadb197 Remove duplicate test file 062_tab_pages_spec.lua --- src/nvim/ex_docmd.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'src/nvim/ex_docmd.c') diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index b1130cd4dd..70d729963c 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -1635,7 +1635,7 @@ static int execute_cmd0(int *retv, exarg_T *eap, char **errormsg, bool preview) (cmdnames[eap->cmdidx].cmd_func)(eap); } if (eap->errmsg != NULL) { - *errormsg = _(eap->errmsg); + *errormsg = eap->errmsg; } } @@ -4381,7 +4381,7 @@ static void get_flags(exarg_T *eap) void ex_ni(exarg_T *eap) { if (!eap->skip) { - eap->errmsg = N_("E319: The command is not available in this version"); + eap->errmsg = _("E319: The command is not available in this version"); } } @@ -5018,7 +5018,7 @@ static int get_tabpage_arg(exarg_T *eap) } else if (p == p_save || *p_save == '-' || *p != NUL || tab_number > LAST_TAB_NR) { // No numbers as argument. - eap->errmsg = e_invarg; + eap->errmsg = ex_errmsg(e_invarg2, eap->arg); goto theend; } } else { @@ -5026,20 +5026,20 @@ static int get_tabpage_arg(exarg_T *eap) tab_number = 1; } else if (p == p_save || *p_save == '-' || *p != NUL || tab_number == 0) { // No numbers as argument. - eap->errmsg = e_invarg; + eap->errmsg = ex_errmsg(e_invarg2, eap->arg); goto theend; } tab_number = tab_number * relative + tabpage_index(curtab); if (!unaccept_arg0 && relative == -1) { - --tab_number; + tab_number--; } } if (tab_number < unaccept_arg0 || tab_number > LAST_TAB_NR) { - eap->errmsg = e_invarg; + eap->errmsg = ex_errmsg(e_invarg2, eap->arg); } } else if (eap->addr_count > 0) { if (unaccept_arg0 && eap->line2 == 0) { - eap->errmsg = e_invrange; + eap->errmsg = _(e_invrange); tab_number = 0; } else { tab_number = (int)eap->line2; @@ -5048,7 +5048,7 @@ static int get_tabpage_arg(exarg_T *eap) if (!unaccept_arg0 && *cmdp == '-') { tab_number--; if (tab_number < unaccept_arg0) { - eap->errmsg = e_invarg; + eap->errmsg = _(e_invrange); } } } @@ -5078,7 +5078,7 @@ static void ex_autocmd(exarg_T *eap) // directory for security reasons. if (secure) { secure = 2; - eap->errmsg = e_curdir; + eap->errmsg = _(e_curdir); } else if (eap->cmdidx == CMD_autocmd) { do_autocmd(eap->arg, eap->forceit); } else { @@ -5119,7 +5119,7 @@ static void ex_bunload(exarg_T *eap) static void ex_buffer(exarg_T *eap) { if (*eap->arg) { - eap->errmsg = e_trailing; + eap->errmsg = ex_errmsg(e_trailing_arg, eap->arg); } else { if (eap->addr_count == 0) { // default is current buffer goto_buffer(eap, DOBUF_CURRENT, FORWARD, 0); @@ -5943,7 +5943,7 @@ static void ex_recover(exarg_T *eap) /// Command modifier used in a wrong way. static void ex_wrongmodifier(exarg_T *eap) { - eap->errmsg = e_invcmd; + eap->errmsg = _(e_invcmd); } /// :sview [+command] file split window with new file, read-only @@ -6052,7 +6052,7 @@ static void ex_tabnext(exarg_T *eap) if (p == p_save || *p_save == '-' || *p_save == '+' || *p != NUL || tab_number == 0) { // No numbers as argument. - eap->errmsg = e_invarg; + eap->errmsg = ex_errmsg(e_invarg2, eap->arg); return; } } else { @@ -6061,7 +6061,7 @@ static void ex_tabnext(exarg_T *eap) } else { tab_number = (int)eap->line2; if (tab_number < 1) { - eap->errmsg = e_invrange; + eap->errmsg = _(e_invrange); return; } } @@ -6339,7 +6339,7 @@ void do_exedit(exarg_T *eap, win_T *old_curwin) /// ":gui" and ":gvim" when there is no GUI. static void ex_nogui(exarg_T *eap) { - eap->errmsg = N_("E25: Nvim does not have a built-in GUI"); + eap->errmsg = _("E25: Nvim does not have a built-in GUI"); } static void ex_popup(exarg_T *eap) @@ -7559,7 +7559,7 @@ static void ex_findpat(exarg_T *eap) // Check for trailing illegal characters. if (!ends_excmd(*p)) { - eap->errmsg = e_trailing; + eap->errmsg = ex_errmsg(e_trailing_arg, p); } else { eap->nextcmd = (char *)check_nextcmd((char_u *)p); } -- cgit From 48051ed62cde6ab572bcd48768fe43740f3cd48c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 7 Aug 2022 14:09:32 +0800 Subject: vim-patch:8.2.1281: the "trailing characters" error can be hard to understand Problem: The "trailing characters" error can be hard to understand. Solution: Add the trailing characters to the message. https://github.com/vim/vim/commit/2d06bfde29bd3a62fc85823d2aa719ef943bd319 --- src/nvim/ex_docmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/nvim/ex_docmd.c') diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 70d729963c..4ac9847e53 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -2266,7 +2266,7 @@ static char *do_one_cmd(char **cmdlinep, int flags, cstack_T *cstack, LineGetter if (!ni && !(ea.argt & EX_EXTRA) && *ea.arg != NUL && *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & EX_TRLBAR) == 0)) { // no arguments allowed but there is something - errormsg = _(e_trailing); + errormsg = ex_errmsg(e_trailing_arg, ea.arg); goto doend; } @@ -7274,7 +7274,7 @@ static void ex_mark(exarg_T *eap) if (*eap->arg == NUL) { // No argument? emsg(_(e_argreq)); } else if (eap->arg[1] != NUL) { // more than one character? - emsg(_(e_trailing)); + semsg(_(e_trailing_arg), eap->arg); } else { pos = curwin->w_cursor; // save curwin->w_cursor curwin->w_cursor.lnum = eap->line2; -- cgit