patch 8.0.0962: crash with virtualedit and joining lines

Problem:    Crash with virtualedit and joining lines. (Joshua T Corbin, Neovim
            #6726)
Solution:   When using a mark check that coladd is valid.
diff --git a/src/misc2.c b/src/misc2.c
index 541069e..17fa424 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -605,7 +605,18 @@
     else if (ve_flags == VE_ALL)
     {
 	if (oldcoladd > win->w_cursor.col)
+	{
 	    win->w_cursor.coladd = oldcoladd - win->w_cursor.col;
+	    if (win->w_cursor.col < len && win->w_cursor.coladd > 0)
+	    {
+		int cs, ce;
+
+		/* check that coladd is not more than the char width */
+		getvcol(win, &win->w_cursor, &cs, NULL, &ce);
+		if (win->w_cursor.coladd > ce - cs)
+		    win->w_cursor.coladd = ce - cs;
+	    }
+	}
 	else
 	    /* avoid weird number when there is a miscalculation or overflow */
 	    win->w_cursor.coladd = 0;