diff options
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 116944b28d..744fb13447 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -2247,7 +2247,7 @@ static void set_var_lval(lval_T *lp, char_u *endp, typval_T *rettv, int copy, ch int ll_n1 = lp->ll_n1; // Check whether any of the list items is locked - for (listitem_T *ri = rettv->vval.v_list->lv_first; ri != NULL; ) { + for (listitem_T *ri = rettv->vval.v_list->lv_first; ri != NULL && ll_li != NULL; ) { if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name)) { return; } @@ -17580,15 +17580,14 @@ void ex_function(exarg_T *eap) /* Check for defining a function inside this function. */ if (checkforcmd(&p, "function", 2)) { - if (*p == '!') + if (*p == '!') { p = skipwhite(p + 1); + } p += eval_fname_script(p); - if (ASCII_ISALPHA(*p)) { - free(trans_function_name(&p, TRUE, 0, NULL)); - if (*skipwhite(p) == '(') { - ++nesting; - indent += 2; - } + free(trans_function_name(&p, TRUE, 0, NULL)); + if (*skipwhite(p) == '(') { + nesting++; + indent += 2; } } |