changeset 2149:4c8008ab94d8 v7.2.431

updated for version 7.2.431 Problem: ":amenu" moves the cursor when in Insert mode. Solution: Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
author Bram Moolenaar <bram@zimbu.org>
date Fri, 14 May 2010 21:19:23 +0200
parents 99b225e0dbc1
children 4269a0673478
files src/menu.c src/version.c
diffstat 2 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/menu.c
+++ b/src/menu.c
@@ -490,6 +490,7 @@ add_menu_path(menu_path, menuarg, pri_ta
     char_u	*next_name;
     int		i;
     int		c;
+    int		d;
 #ifdef FEAT_GUI
     int		idx;
     int		new_idx;
@@ -746,6 +747,7 @@ add_menu_path(menu_path, menuarg, pri_ta
 		 * Don't do this if adding a tearbar (addtearoff == FALSE).
 		 * Don't do this for "<Nop>". */
 		c = 0;
+		d = 0;
 		if (amenu && call_data != NULL && *call_data != NUL
 #ifdef FEAT_GUI_W32
 		       && addtearoff
@@ -761,18 +763,25 @@ add_menu_path(menu_path, menuarg, pri_ta
 			    c = Ctrl_C;
 			    break;
 			case MENU_INSERT_MODE:
-			    c = Ctrl_O;
+			    c = Ctrl_BSL;
+			    d = Ctrl_O;
 			    break;
 		    }
 		}
 
-		if (c)
+		if (c != 0)
 		{
-		    menu->strings[i] = alloc((unsigned)(STRLEN(call_data) + 4));
+		    menu->strings[i] = alloc((unsigned)(STRLEN(call_data) + 5 ));
 		    if (menu->strings[i] != NULL)
 		    {
 			menu->strings[i][0] = c;
-			STRCPY(menu->strings[i] + 1, call_data);
+			if (d == 0)
+			    STRCPY(menu->strings[i] + 1, call_data);
+			else
+			{
+			    menu->strings[i][1] = d;
+			    STRCPY(menu->strings[i] + 2, call_data);
+			}
 			if (c == Ctrl_C)
 			{
 			    int	    len = (int)STRLEN(menu->strings[i]);
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    431,
+/**/
     430,
 /**/
     429,