diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-04-14 14:11:24 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-04-14 16:10:09 +0800 |
commit | ff963d699bd8113913d3511c7b4ea1621eae8a06 (patch) | |
tree | 739db58d7bf971e99f88a0adbedaad527039362e /src | |
parent | 8729c41f44de3b164ad8d01bb3558c6400e27952 (diff) | |
download | rneovim-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.c | 11 |
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; } |