mirror of
https://github.com/neovim/neovim.git
synced 2025-09-22 11:18:19 +00:00
No OOM in popup_mode_name()
This commit is contained in:
@@ -186,11 +186,8 @@ ex_menu (
|
|||||||
for (i = 0; i < MENU_INDEX_TIP; ++i)
|
for (i = 0; i < MENU_INDEX_TIP; ++i)
|
||||||
if (modes & (1 << i)) {
|
if (modes & (1 << i)) {
|
||||||
p = popup_mode_name(menu_path, i);
|
p = popup_mode_name(menu_path, i);
|
||||||
if (p != NULL) {
|
menu_nable_recurse(root_menu, p, MENU_ALL_MODES, enable);
|
||||||
menu_nable_recurse(root_menu, p, MENU_ALL_MODES,
|
free(p);
|
||||||
enable);
|
|
||||||
free(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
menu_nable_recurse(root_menu, menu_path, modes, enable);
|
menu_nable_recurse(root_menu, menu_path, modes, enable);
|
||||||
@@ -208,10 +205,8 @@ ex_menu (
|
|||||||
for (i = 0; i < MENU_INDEX_TIP; ++i)
|
for (i = 0; i < MENU_INDEX_TIP; ++i)
|
||||||
if (modes & (1 << i)) {
|
if (modes & (1 << i)) {
|
||||||
p = popup_mode_name(menu_path, i);
|
p = popup_mode_name(menu_path, i);
|
||||||
if (p != NULL) {
|
remove_menu(&root_menu, p, MENU_ALL_MODES, TRUE);
|
||||||
remove_menu(&root_menu, p, MENU_ALL_MODES, TRUE);
|
free(p);
|
||||||
free(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,13 +237,10 @@ ex_menu (
|
|||||||
for (i = 0; i < MENU_INDEX_TIP; ++i)
|
for (i = 0; i < MENU_INDEX_TIP; ++i)
|
||||||
if (modes & (1 << i)) {
|
if (modes & (1 << i)) {
|
||||||
p = popup_mode_name(menu_path, i);
|
p = popup_mode_name(menu_path, i);
|
||||||
if (p != NULL) {
|
// Include all modes, to make ":amenu" work
|
||||||
/* Include all modes, to make ":amenu" work */
|
menuarg.modes = modes;
|
||||||
menuarg.modes = modes;
|
add_menu_path(p, &menuarg, pri_tab, map_to);
|
||||||
add_menu_path(p, &menuarg, pri_tab, map_to
|
free(p);
|
||||||
);
|
|
||||||
free(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1153,10 +1145,9 @@ get_menu_cmd_modes (
|
|||||||
*/
|
*/
|
||||||
static char_u *popup_mode_name(char_u *name, int idx)
|
static char_u *popup_mode_name(char_u *name, int idx)
|
||||||
{
|
{
|
||||||
char_u *p;
|
|
||||||
int len = (int)STRLEN(name);
|
int len = (int)STRLEN(name);
|
||||||
|
|
||||||
p = vim_strnsave(name, len + 1);
|
char_u *p = vim_strnsave(name, len + 1);
|
||||||
memmove(p + 6, p + 5, (size_t)(len - 4));
|
memmove(p + 6, p + 5, (size_t)(len - 4));
|
||||||
p[5] = menu_mode_chars[idx];
|
p[5] = menu_mode_chars[idx];
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user