aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/menu.c')
-rw-r--r--src/nvim/menu.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index ad6bcc82da..ab5c1569dc 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -1444,7 +1444,6 @@ static garray_T menutrans_ga = GA_EMPTY_INIT_VALUE;
void ex_menutranslate(exarg_T *eap)
{
char_u *arg = eap->arg;
- menutrans_T *tp;
char_u *from, *from_noamp, *to;
if (menutrans_ga.ga_itemsize == 0)
@@ -1454,7 +1453,7 @@ void ex_menutranslate(exarg_T *eap)
* ":menutrans clear": clear all translations.
*/
if (STRNCMP(arg, "clear", 5) == 0 && ends_excmd(*skipwhite(arg + 5))) {
- tp = (menutrans_T *)menutrans_ga.ga_data;
+ menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data;
for (int i = 0; i < menutrans_ga.ga_len; ++i) {
free(tp[i].from);
free(tp[i].from_noamp);
@@ -1473,8 +1472,6 @@ void ex_menutranslate(exarg_T *eap)
if (arg == to)
EMSG(_(e_invarg));
else {
- ga_grow(&menutrans_ga, 1);
- tp = (menutrans_T *)menutrans_ga.ga_data;
from = vim_strsave(from);
from_noamp = menu_text(from, NULL, NULL);
to = vim_strnsave(to, (int)(arg - to));
@@ -1483,10 +1480,10 @@ void ex_menutranslate(exarg_T *eap)
menu_translate_tab_and_shift(to);
menu_unescape_name(from);
menu_unescape_name(to);
- tp[menutrans_ga.ga_len].from = from;
- tp[menutrans_ga.ga_len].from_noamp = from_noamp;
- tp[menutrans_ga.ga_len].to = to;
- ++menutrans_ga.ga_len;
+ menutrans_T* tp = GA_APPEND_VIA_PTR(menutrans_T, &menutrans_ga);
+ tp->from = from;
+ tp->from_noamp = from_noamp;
+ tp->to = to;
} else {
free(from);
free(from_noamp);