diff options
-rw-r--r-- | src/nvim/eval.c | 10 | ||||
-rw-r--r-- | src/nvim/globals.h | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index baa61a26bc..c424cfcd80 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -19842,8 +19842,16 @@ void ex_function(exarg_T *eap) /* Check for "endfunction". */ if (checkforcmd(&p, "endfunction", 4) && nesting-- == 0) { - if (line_arg == NULL) + if (*p == '!') { + p++; + } + p += strspn((const char *)p, " \t\r\n"); + if (*p != NUL && *p != '"') { + emsgf(_(e_trailing2), p); + } + if (line_arg == NULL) { xfree(theline); + } break; } diff --git a/src/nvim/globals.h b/src/nvim/globals.h index 840be928c8..6d1bd1de12 100644 --- a/src/nvim/globals.h +++ b/src/nvim/globals.h @@ -1131,6 +1131,7 @@ EXTERN char_u e_longname[] INIT(= N_("E75: Name too long")); EXTERN char_u e_toomsbra[] INIT(= N_("E76: Too many [")); EXTERN char_u e_toomany[] INIT(= N_("E77: Too many file names")); EXTERN char_u e_trailing[] INIT(= N_("E488: Trailing characters")); +EXTERN char_u e_trailing2[] INIT(= N_("E488: Trailing characters: %s")); EXTERN char_u e_umark[] INIT(= N_("E78: Unknown mark")); EXTERN char_u e_wildexpand[] INIT(= N_("E79: Cannot expand wildcards")); EXTERN char_u e_winheight[] INIT(= N_( |