summaryrefslogtreecommitdiff
path: root/src/menu.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-05-14 21:19:23 +0200
committerBram Moolenaar <Bram@vim.org>2010-05-14 21:19:23 +0200
commit7871a500719a4b8cf212b788caec8abe33bf4c39 (patch)
treedcca725245bb329c43b63abc1cc9d53f1b7057d4 /src/menu.c
parent9c0044df7c58f0afc74ed9afd034b55850758da1 (diff)
downloadvim-7871a500719a4b8cf212b788caec8abe33bf4c39.zip
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)
Diffstat (limited to 'src/menu.c')
-rw-r--r--src/menu.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/menu.c b/src/menu.c
index 41bebbf32..a80239eb5 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -490,6 +490,7 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data
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_tab, call_data
* 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_tab, call_data
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]);