diff src/getchar.c @ 4227:94342b0605fb v7.3.865

updated for version 7.3.865 Problem: Mouse position may be wrong. Solution: Let vungetc() restore the mouse position.
author Bram Moolenaar <bram@vim.org>
date Sat, 16 Mar 2013 21:42:16 +0100
parents af083cb521bc
children 790238e5a46c
line wrap: on
line diff
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1337,6 +1337,10 @@ save_typebuf()
 
 static int old_char = -1;	/* character put back by vungetc() */
 static int old_mod_mask;	/* mod_mask for ungotten character */
+#ifdef FEAT_MOUSE
+static int old_mouse_row;	/* mouse_row related to old_char */
+static int old_mouse_col;	/* mouse_col related to old_char */
+#endif
 
 #if defined(FEAT_EVAL) || defined(FEAT_EX_EXTRA) || defined(PROTO)
 
@@ -1567,6 +1571,10 @@ vgetc()
 	c = old_char;
 	old_char = -1;
 	mod_mask = old_mod_mask;
+#ifdef FEAT_MOUSE
+	mouse_row = old_mouse_row;
+	mouse_col = old_mouse_col;
+#endif
     }
     else
     {
@@ -1877,6 +1885,10 @@ vungetc(c)	/* unget one character (can o
 {
     old_char = c;
     old_mod_mask = mod_mask;
+#ifdef FEAT_MOUSE
+    old_mouse_row = mouse_row;
+    old_mouse_col = mouse_col;
+#endif
 }
 
 /*