diff src/undo.c @ 30545:9a6f7e750697 v9.0.0608

patch 9.0.0608: with spelling, deleting a full stop does not update next line Commit: https://github.com/vim/vim/commit/26f09ea54b2c60abf21df42c60bdfc60eca17b0d Author: Bram Moolenaar <Bram@vim.org> Date: Tue Sep 27 16:29:38 2022 +0100 patch 9.0.0608: with spelling, deleting a full stop does not update next line Problem: With spell checking, deleting a full stop at the end of a line does not update SpellCap at the start of the next line. Solution: Update the next line when characters have been deleted. Also when using undo.
author Bram Moolenaar <Bram@vim.org>
date Tue, 27 Sep 2022 17:30:05 +0200
parents 89e1d67814a9
children 53c3df37a2b0
line wrap: on
line diff
--- a/src/undo.c
+++ b/src/undo.c
@@ -2835,7 +2835,16 @@ u_undoredo(int undo)
 		curbuf->b_op_end.lnum += newsize - oldsize;
 	}
 	if (oldsize > 0 || newsize > 0)
+	{
 	    changed_lines(top + 1, 0, bot, newsize - oldsize);
+#ifdef FEAT_SPELL
+	    // When text has been changed, possibly the start of the next line
+	    // may have SpellCap that should be removed or it needs to be
+	    // displayed.  Schedule the next line for redrawing just in case.
+	    if (spell_check_window(curwin) && bot <= curbuf->b_ml.ml_line_count)
+		redrawWinline(curwin, bot);
+#endif
+	}
 
 	// Set the '[ mark.
 	if (top + 1 < curbuf->b_op_start.lnum)