patch 8.2.3280: 'virtualedit' local to buffer is not the best solution

Problem:    'virtualedit' local to buffer is not the best solution.
Solution:   Make it window-local. (Gary Johnson, closes #8685)
diff --git a/src/ops.c b/src/ops.c
index 75619c5..614ada5 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1475,21 +1475,21 @@
 	// already disabled, but still need it when calling
 	// coladvance_force().
 	// coladvance_force() uses get_ve_flags() to get the 'virtualedit'
-	// state for the current buffer.  To override that state, we need to
-	// set the buffer-local value of ve_flags rather than the global value.
+	// state for the current window.  To override that state, we need to
+	// set the window-local value of ve_flags rather than the global value.
 	if (curwin->w_cursor.coladd > 0)
 	{
-	    int		old_ve_flags = curbuf->b_ve_flags;
+	    int		old_ve_flags = curwin->w_ve_flags;
 
 	    if (u_save_cursor() == FAIL)
 		return;
 
-	    curbuf->b_ve_flags = VE_ALL;
+	    curwin->w_ve_flags = VE_ALL;
 	    coladvance_force(oap->op_type == OP_APPEND
 					   ? oap->end_vcol + 1 : getviscol());
 	    if (oap->op_type == OP_APPEND)
 		--curwin->w_cursor.col;
-	    curbuf->b_ve_flags = old_ve_flags;
+	    curwin->w_ve_flags = old_ve_flags;
 	}
 	// Get the info about the block before entering the text
 	block_prep(oap, &bd, oap->start.lnum, TRUE);