mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #8565 from janlazo/vim-8.0.0575
This commit is contained in:
commit
eeeaf04c5e
@ -520,7 +520,7 @@ int inindent(int extra)
|
|||||||
// Get indent level from 'indentexpr'.
|
// Get indent level from 'indentexpr'.
|
||||||
int get_expr_indent(void)
|
int get_expr_indent(void)
|
||||||
{
|
{
|
||||||
int indent;
|
int indent = -1;
|
||||||
pos_T save_pos;
|
pos_T save_pos;
|
||||||
colnr_T save_curswant;
|
colnr_T save_curswant;
|
||||||
int save_set_curswant;
|
int save_set_curswant;
|
||||||
@ -538,7 +538,14 @@ int get_expr_indent(void)
|
|||||||
sandbox++;
|
sandbox++;
|
||||||
}
|
}
|
||||||
textlock++;
|
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) {
|
if (use_sandbox) {
|
||||||
sandbox--;
|
sandbox--;
|
||||||
|
@ -275,3 +275,15 @@ func Test_complete()
|
|||||||
set complete&
|
set complete&
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
|
func ResetIndentexpr()
|
||||||
|
set indentexpr=
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_set_indentexpr()
|
||||||
|
" this was causing usage of freed memory
|
||||||
|
set indentexpr=ResetIndentexpr()
|
||||||
|
new
|
||||||
|
call feedkeys("i\<c-f>", 'x')
|
||||||
|
call assert_equal('', &indentexpr)
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
Loading…
Reference in New Issue
Block a user