forked from aniani/vim
updated for version 7.0-054
This commit is contained in:
25
src/menu.c
25
src/menu.c
@@ -511,6 +511,14 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data
|
|||||||
* name (without mnemonic and accelerator text). */
|
* name (without mnemonic and accelerator text). */
|
||||||
next_name = menu_name_skip(name);
|
next_name = menu_name_skip(name);
|
||||||
dname = menu_text(name, NULL, NULL);
|
dname = menu_text(name, NULL, NULL);
|
||||||
|
if (dname == NULL)
|
||||||
|
goto erret;
|
||||||
|
if (*dname == NUL)
|
||||||
|
{
|
||||||
|
/* Only a mnemonic or accelerator is not valid. */
|
||||||
|
EMSG(_("E792: Empty menu name"));
|
||||||
|
goto erret;
|
||||||
|
}
|
||||||
|
|
||||||
/* See if it's already there */
|
/* See if it's already there */
|
||||||
lower_pri = menup;
|
lower_pri = menup;
|
||||||
@@ -704,6 +712,7 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data
|
|||||||
parent = menu;
|
parent = menu;
|
||||||
name = next_name;
|
name = next_name;
|
||||||
vim_free(dname);
|
vim_free(dname);
|
||||||
|
dname = NULL;
|
||||||
if (pri_tab[pri_idx + 1] != -1)
|
if (pri_tab[pri_idx + 1] != -1)
|
||||||
++pri_idx;
|
++pri_idx;
|
||||||
}
|
}
|
||||||
@@ -793,6 +802,22 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data
|
|||||||
erret:
|
erret:
|
||||||
vim_free(path_name);
|
vim_free(path_name);
|
||||||
vim_free(dname);
|
vim_free(dname);
|
||||||
|
|
||||||
|
/* Delete any empty submenu we added before discovering the error. Repeat
|
||||||
|
* for higher levels. */
|
||||||
|
while (parent != NULL && parent->children == NULL)
|
||||||
|
{
|
||||||
|
if (parent->parent == NULL)
|
||||||
|
menup = &root_menu;
|
||||||
|
else
|
||||||
|
menup = &parent->parent->children;
|
||||||
|
for ( ; *menup != NULL && *menup != parent; menup = &((*menup)->next))
|
||||||
|
;
|
||||||
|
if (*menup == NULL) /* safety check */
|
||||||
|
break;
|
||||||
|
parent = parent->parent;
|
||||||
|
free_menu(menup);
|
||||||
|
}
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -666,6 +666,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
54,
|
||||||
/**/
|
/**/
|
||||||
53,
|
53,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user