vim-patch:8.2.1098: Vim9: cannot use line break in :throw argument

Problem:    Vim9: cannot use line break in :throw argument.
Solution:   Check for line break.

006ad48b8a

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2023-04-14 14:11:24 +08:00
parent 8729c41f44
commit ff963d699b

View File

@@ -837,10 +837,17 @@ char *eval_to_string_skip(char *arg, exarg_T *eap, const bool skip)
typval_T tv; typval_T tv;
char *retval; char *retval;
evalarg_T evalarg = {
.eval_flags = skip ? 0 : EVAL_EVALUATE,
};
if (eap != NULL && getline_equal(eap->getline, eap->cookie, getsourceline)) {
evalarg.eval_getline = eap->getline;
evalarg.eval_cookie = eap->cookie;
}
if (skip) { if (skip) {
emsg_skip++; emsg_skip++;
} }
if (eval0(arg, &tv, eap, skip ? NULL : &EVALARG_EVALUATE) == FAIL || skip) { if (eval0(arg, &tv, eap, &evalarg) == FAIL || skip) {
retval = NULL; retval = NULL;
} else { } else {
retval = xstrdup(tv_get_string(&tv)); retval = xstrdup(tv_get_string(&tv));
@@ -849,7 +856,7 @@ char *eval_to_string_skip(char *arg, exarg_T *eap, const bool skip)
if (skip) { if (skip) {
emsg_skip--; emsg_skip--;
} }
clear_evalarg(&EVALARG_EVALUATE, eap); clear_evalarg(&evalarg, eap);
return retval; return retval;
} }