From: Bram Moolenaar Date: Wed, 16 Aug 2006 13:55:16 +0000 (+0000) Subject: updated for version 7.0-054 X-Git-Tag: v7.0.054 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=18a0b1286b7770b42163c63246a6d4a4ff2bcf55;p=vim updated for version 7.0-054 --- diff --git a/src/menu.c b/src/menu.c index 96a535ff4..80ada2c8e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -511,6 +511,14 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data * name (without mnemonic and accelerator text). */ next_name = menu_name_skip(name); 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 */ lower_pri = menup; @@ -704,6 +712,7 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data parent = menu; name = next_name; vim_free(dname); + dname = NULL; if (pri_tab[pri_idx + 1] != -1) ++pri_idx; } @@ -793,6 +802,22 @@ add_menu_path(menu_path, menuarg, pri_tab, call_data erret: vim_free(path_name); 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; } diff --git a/src/version.c b/src/version.c index ebe1221f9..54b457e2a 100644 --- a/src/version.c +++ b/src/version.c @@ -666,6 +666,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 54, /**/ 53, /**/