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;
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) {
emsg_skip++;
}
if (eval0(arg, &tv, eap, skip ? NULL : &EVALARG_EVALUATE) == FAIL || skip) {
if (eval0(arg, &tv, eap, &evalarg) == FAIL || skip) {
retval = NULL;
} else {
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) {
emsg_skip--;
}
clear_evalarg(&EVALARG_EVALUATE, eap);
clear_evalarg(&evalarg, eap);
return retval;
}