aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-04-14 14:11:24 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-04-14 16:10:09 +0800
commitff963d699bd8113913d3511c7b4ea1621eae8a06 (patch)
tree739db58d7bf971e99f88a0adbedaad527039362e /src
parent8729c41f44de3b164ad8d01bb3558c6400e27952 (diff)
downloadrneovim-ff963d699bd8113913d3511c7b4ea1621eae8a06.tar.gz
rneovim-ff963d699bd8113913d3511c7b4ea1621eae8a06.tar.bz2
rneovim-ff963d699bd8113913d3511c7b4ea1621eae8a06.zip
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. https://github.com/vim/vim/commit/006ad48b8a15c3bace741d8caaf3195e592fbe78 Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 0880fed71e..1a2268504c 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -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;
}