mirror of
https://github.com/neovim/neovim.git
synced 2025-09-22 03:08:27 +00:00
Introduce ga_append_via_ptr() and GA_APPEND_VIA_PTR()
Similar to GA_APPEND(). Replaces this pattern: ga_grow(&ga, 1); item_type *p = ((item_type *)ga.ga_data) + ga.ga_len; p->field1 = v1; p->field2 = v2; ga.ga_len++;
This commit is contained in:

committed by
Justin M. Keyes

parent
45e7814e6a
commit
5ed74cfb7c
@@ -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);
|
||||
|
Reference in New Issue
Block a user