diff options
-rw-r--r-- | src/edit.c | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/edit.c b/src/edit.c index 43a4c39a7..f0aecef20 100644 --- a/src/edit.c +++ b/src/edit.c @@ -5333,8 +5333,16 @@ insertchar(c, flags, second_indent) /* Format with 'formatexpr' when it's set. Use internal formatting * when 'formatexpr' isn't set or it returns non-zero. */ #if defined(FEAT_EVAL) - if (*curbuf->b_p_fex == NUL - || fex_format(curwin->w_cursor.lnum, 1L, c) != 0) + int do_internal = TRUE; + + if (*curbuf->b_p_fex != NUL) + { + do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0); + /* It may be required to save for undo again, e.g. when setline() + * was called. */ + ins_need_undo = TRUE; + } + if (do_internal) #endif internal_format(textwidth, second_indent, flags, c == NUL); } diff --git a/src/version.c b/src/version.c index 6ff099e9f..5c5685243 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 126, +/**/ 125, /**/ 124, |