diff options
Diffstat (limited to 'src/nvim/indent.c')
| -rw-r--r-- | src/nvim/indent.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/src/nvim/indent.c b/src/nvim/indent.c index efca739c2d..c94186a1f2 100644 --- a/src/nvim/indent.c +++ b/src/nvim/indent.c @@ -520,7 +520,7 @@ int inindent(int extra)  // Get indent level from 'indentexpr'.  int get_expr_indent(void)  { -  int indent; +  int indent = -1;    pos_T save_pos;    colnr_T save_curswant;    int save_set_curswant; @@ -538,7 +538,14 @@ int get_expr_indent(void)      sandbox++;    }    textlock++; -  indent = (int)eval_to_number(curbuf->b_p_inde); + +  // Need to make a copy, the 'indentexpr' option could be changed while +  // evaluating it. +  char_u *inde_copy = vim_strsave(curbuf->b_p_inde); +  if (inde_copy != NULL) { +    indent = (int)eval_to_number(inde_copy); +    xfree(inde_copy); +  }    if (use_sandbox) {      sandbox--; | 
