aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-04-14 12:49:19 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-04-14 16:10:09 +0800
commit9781a21133238060a8b58b9c84d3960d830fa3e9 (patch)
tree345a8e3fa70bcd87701f3a73da709e155cefcc93 /src/nvim/eval.c
parent9ecfb42ec0b8959c291c5c1d28710fe12d3d070f (diff)
downloadrneovim-9781a21133238060a8b58b9c84d3960d830fa3e9.tar.gz
rneovim-9781a21133238060a8b58b9c84d3960d830fa3e9.tar.bz2
rneovim-9781a21133238060a8b58b9c84d3960d830fa3e9.zip
vim-patch:8.2.1063: Vim9: no line break allowed before || or &&
Problem: Vim9: no line break allowed before || or &&. Solution: Check for operator after line break. https://github.com/vim/vim/commit/be7ee488761a5582a5605197c3951a17f20d072e Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 29c294c754..bb756fa324 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -2377,7 +2377,8 @@ static int eval2(char **arg, typval_T *rettv, evalarg_T *const evalarg)
// Repeat until there is no following "||".
bool first = true;
bool result = false;
- while ((*arg)[0] == '|' && (*arg)[1] == '|') {
+ char *p = *arg;
+ while (p[0] == '|' && p[1] == '|') {
evalarg_T nested_evalarg = evalarg == NULL ? (evalarg_T){ 0 } : *evalarg;
const int orig_flags = evalarg == NULL ? 0 : evalarg->eval_flags;
const bool evaluate = orig_flags & EVAL_EVALUATE;
@@ -2414,6 +2415,8 @@ static int eval2(char **arg, typval_T *rettv, evalarg_T *const evalarg)
rettv->v_type = VAR_NUMBER;
rettv->vval.v_number = result;
}
+
+ p = *arg;
}
return OK;
@@ -2439,7 +2442,8 @@ static int eval3(char **arg, typval_T *rettv, evalarg_T *const evalarg)
// Repeat until there is no following "&&".
bool first = true;
bool result = true;
- while ((*arg)[0] == '&' && (*arg)[1] == '&') {
+ char *p = *arg;
+ while (p[0] == '&' && p[1] == '&') {
evalarg_T nested_evalarg = evalarg == NULL ? (evalarg_T){ 0 } : *evalarg;
const int orig_flags = evalarg == NULL ? 0 : evalarg->eval_flags;
const bool evaluate = orig_flags & EVAL_EVALUATE;
@@ -2476,6 +2480,8 @@ static int eval3(char **arg, typval_T *rettv, evalarg_T *const evalarg)
rettv->v_type = VAR_NUMBER;
rettv->vval.v_number = result;
}
+
+ p = *arg;
}
return OK;