Declare garray iterators in the for() scope where possible #819

This commit is contained in:
Felipe Oliveira Carvalho
2014-06-06 23:25:13 -03:00
committed by Justin M. Keyes
parent a321480342
commit f39fd5b4c4
16 changed files with 232 additions and 324 deletions

View File

@@ -1492,8 +1492,7 @@ static int getexactdigraph(int char1, int char2, int meta_char)
// Search user digraphs first. // Search user digraphs first.
digr_T *dp = (digr_T *)user_digraphs.ga_data; digr_T *dp = (digr_T *)user_digraphs.ga_data;
int i; for (int i = 0; i < user_digraphs.ga_len; ++i) {
for (i = 0; i < user_digraphs.ga_len; ++i) {
if (((int) dp->char1 == char1) && ((int) dp->char2 == char2)) { if (((int) dp->char1 == char1) && ((int) dp->char2 == char2)) {
retval = dp->result; retval = dp->result;
break; break;
@@ -1505,7 +1504,7 @@ static int getexactdigraph(int char1, int char2, int meta_char)
if (retval == 0) { if (retval == 0) {
dp = digraphdefault; dp = digraphdefault;
for (i = 0; dp->char1 != 0; ++i) { for (int i = 0; dp->char1 != 0; ++i) {
if (((int) dp->char1 == char1) && ((int) dp->char2 == char2)) { if (((int) dp->char1 == char1) && ((int) dp->char2 == char2)) {
retval = dp->result; retval = dp->result;
break; break;
@@ -1519,7 +1518,7 @@ static int getexactdigraph(int char1, int char2, int meta_char)
vimconv_T vc; vimconv_T vc;
// Convert the Unicode digraph to 'encoding'. // Convert the Unicode digraph to 'encoding'.
i = utf_char2bytes(retval, buf); int i = utf_char2bytes(retval, buf);
retval = 0; retval = 0;
vc.vc_type = CONV_NONE; vc.vc_type = CONV_NONE;
@@ -1578,7 +1577,6 @@ int getdigraph(int char1, int char2, int meta_char)
void putdigraph(char_u *str) void putdigraph(char_u *str)
{ {
int char1, char2, n; int char1, char2, n;
int i;
digr_T *dp; digr_T *dp;
while (*str != NUL) { while (*str != NUL) {
@@ -1610,6 +1608,7 @@ void putdigraph(char_u *str)
// If the digraph already exists, replace the result. // If the digraph already exists, replace the result.
dp = (digr_T *)user_digraphs.ga_data; dp = (digr_T *)user_digraphs.ga_data;
int i;
for (i = 0; i < user_digraphs.ga_len; ++i) { for (i = 0; i < user_digraphs.ga_len; ++i) {
if (((int)dp->char1 == char1) && ((int)dp->char2 == char2)) { if (((int)dp->char1 == char1) && ((int)dp->char2 == char2)) {
dp->result = n; dp->result = n;
@@ -1632,14 +1631,13 @@ void putdigraph(char_u *str)
void listdigraphs(void) void listdigraphs(void)
{ {
int i;
digr_T *dp; digr_T *dp;
msg_putchar('\n'); msg_putchar('\n');
dp = digraphdefault; dp = digraphdefault;
for (i = 0; dp->char1 != NUL && !got_int; ++i) { for (int i = 0; dp->char1 != NUL && !got_int; ++i) {
digr_T tmp; digr_T tmp;
// May need to convert the result to 'encoding'. // May need to convert the result to 'encoding'.
@@ -1657,7 +1655,7 @@ void listdigraphs(void)
} }
dp = (digr_T *)user_digraphs.ga_data; dp = (digr_T *)user_digraphs.ga_data;
for (i = 0; i < user_digraphs.ga_len && !got_int; ++i) { for (int i = 0; i < user_digraphs.ga_len && !got_int; ++i) {
printdigraph(dp); printdigraph(dp);
ui_breakcheck(); ui_breakcheck();
dp++; dp++;
@@ -1778,7 +1776,6 @@ void ex_loadkeymap(exarg_T *eap)
#define KMAP_LLEN 200 // max length of "to" and "from" together #define KMAP_LLEN 200 // max length of "to" and "from" together
char_u buf[KMAP_LLEN + 11]; char_u buf[KMAP_LLEN + 11];
int i;
char_u *save_cpo = p_cpo; char_u *save_cpo = p_cpo;
if (!getline_equal(eap->getline, eap->cookie, getsourceline)) { if (!getline_equal(eap->getline, eap->cookie, getsourceline)) {
@@ -1830,7 +1827,7 @@ void ex_loadkeymap(exarg_T *eap)
} }
// setup ":lnoremap" to map the keys // setup ":lnoremap" to map the keys
for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) { for (int i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) {
vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s %s", vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s %s",
((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].from, ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].from,
((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].to); ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].to);
@@ -1847,7 +1844,6 @@ void ex_loadkeymap(exarg_T *eap)
static void keymap_unload(void) static void keymap_unload(void)
{ {
char_u buf[KMAP_MAXLEN + 10]; char_u buf[KMAP_MAXLEN + 10];
int i;
char_u *save_cpo = p_cpo; char_u *save_cpo = p_cpo;
kmap_T *kp; kmap_T *kp;
@@ -1861,7 +1857,7 @@ static void keymap_unload(void)
// clear the ":lmap"s // clear the ":lmap"s
kp = (kmap_T *)curbuf->b_kmap_ga.ga_data; kp = (kmap_T *)curbuf->b_kmap_ga.ga_data;
for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) { for (int i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) {
vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from); vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from);
(void)do_map(1, buf, LANGMAP, FALSE); (void)do_map(1, buf, LANGMAP, FALSE);
free(kp[i].from); free(kp[i].from);

View File

@@ -460,10 +460,9 @@ void eval_init(void)
#if defined(EXITFREE) || defined(PROTO) #if defined(EXITFREE) || defined(PROTO)
void eval_clear(void) void eval_clear(void)
{ {
int i;
struct vimvar *p; struct vimvar *p;
for (i = 0; i < VV_LEN; ++i) { for (int i = 0; i < VV_LEN; ++i) {
p = &vimvars[i]; p = &vimvars[i];
if (p->vv_di.di_tv.v_type == VAR_STRING) { if (p->vv_di.di_tv.v_type == VAR_STRING) {
free(p->vv_str); free(p->vv_str);
@@ -489,9 +488,9 @@ void eval_clear(void)
/* Script-local variables. First clear all the variables and in a second /* Script-local variables. First clear all the variables and in a second
* loop free the scriptvar_T, because a variable in one script might hold * loop free the scriptvar_T, because a variable in one script might hold
* a reference to the whole scope of another script. */ * a reference to the whole scope of another script. */
for (i = 1; i <= ga_scripts.ga_len; ++i) for (int i = 1; i <= ga_scripts.ga_len; ++i)
vars_clear(&SCRIPT_VARS(i)); vars_clear(&SCRIPT_VARS(i));
for (i = 1; i <= ga_scripts.ga_len; ++i) for (int i = 1; i <= ga_scripts.ga_len; ++i)
free(SCRIPT_SV(i)); free(SCRIPT_SV(i));
ga_clear(&ga_scripts); ga_clear(&ga_scripts);
@@ -1038,14 +1037,13 @@ call_vim_function (
{ {
long n; long n;
int len; int len;
int i;
int doesrange; int doesrange;
void *save_funccalp = NULL; void *save_funccalp = NULL;
int ret; int ret;
typval_T *argvars = xmalloc((argc + 1) * sizeof(typval_T)); typval_T *argvars = xmalloc((argc + 1) * sizeof(typval_T));
for (i = 0; i < argc; i++) { for (int i = 0; i < argc; i++) {
/* Pass a NULL or empty argument as an empty string */ /* Pass a NULL or empty argument as an empty string */
if (argv[i] == NULL || *argv[i] == NUL) { if (argv[i] == NULL || *argv[i] == NUL) {
argvars[i].v_type = VAR_STRING; argvars[i].v_type = VAR_STRING;
@@ -5292,7 +5290,6 @@ list_join_inner (
garray_T *join_gap /* to keep each list item string */ garray_T *join_gap /* to keep each list item string */
) )
{ {
int i;
join_T *p; join_T *p;
int len; int len;
int sumlen = 0; int sumlen = 0;
@@ -5333,7 +5330,7 @@ list_join_inner (
sumlen += (int)STRLEN(sep) * (join_gap->ga_len - 1); sumlen += (int)STRLEN(sep) * (join_gap->ga_len - 1);
ga_grow(gap, sumlen + 2); ga_grow(gap, sumlen + 2);
for (i = 0; i < join_gap->ga_len && !got_int; ++i) { for (int i = 0; i < join_gap->ga_len && !got_int; ++i) {
if (first) if (first)
first = FALSE; first = FALSE;
else else
@@ -5358,7 +5355,6 @@ static int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int
garray_T join_ga; garray_T join_ga;
int retval; int retval;
join_T *p; join_T *p;
int i;
ga_init(&join_ga, (int)sizeof(join_T), l->lv_len); ga_init(&join_ga, (int)sizeof(join_T), l->lv_len);
retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga); retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga);
@@ -5366,7 +5362,7 @@ static int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int
/* Dispose each item in join_ga. */ /* Dispose each item in join_ga. */
if (join_ga.ga_data != NULL) { if (join_ga.ga_data != NULL) {
p = (join_T *)join_ga.ga_data; p = (join_T *)join_ga.ga_data;
for (i = 0; i < join_ga.ga_len; ++i) { for (int i = 0; i < join_ga.ga_len; ++i) {
free(p->tofree); free(p->tofree);
++p; ++p;
} }
@@ -5405,7 +5401,6 @@ int garbage_collect(void)
int copyID; int copyID;
buf_T *buf; buf_T *buf;
win_T *wp; win_T *wp;
int i;
funccall_T *fc, **pfc; funccall_T *fc, **pfc;
int did_free; int did_free;
int did_free_funccal = FALSE; int did_free_funccal = FALSE;
@@ -5435,7 +5430,7 @@ int garbage_collect(void)
} }
/* script-local variables */ /* script-local variables */
for (i = 1; i <= ga_scripts.ga_len; ++i) for (int i = 1; i <= ga_scripts.ga_len; ++i)
set_ref_in_ht(&SCRIPT_VARS(i), copyID); set_ref_in_ht(&SCRIPT_VARS(i), copyID);
/* buffer-local variables */ /* buffer-local variables */
@@ -5464,9 +5459,6 @@ int garbage_collect(void)
/* v: vars */ /* v: vars */
set_ref_in_ht(&vimvarht, copyID); set_ref_in_ht(&vimvarht, copyID);
/* /*
* 2. Free lists and dictionaries that are not referenced. * 2. Free lists and dictionaries that are not referenced.
*/ */
@@ -13394,7 +13386,6 @@ static void f_spellsuggest(typval_T *argvars, typval_T *rettv)
int typeerr = FALSE; int typeerr = FALSE;
int maxcount; int maxcount;
garray_T ga; garray_T ga;
int i;
listitem_T *li; listitem_T *li;
int need_capital = FALSE; int need_capital = FALSE;
@@ -13416,7 +13407,7 @@ static void f_spellsuggest(typval_T *argvars, typval_T *rettv)
spell_suggest_list(&ga, str, maxcount, need_capital, FALSE); spell_suggest_list(&ga, str, maxcount, need_capital, FALSE);
for (i = 0; i < ga.ga_len; ++i) { for (int i = 0; i < ga.ga_len; ++i) {
str = ((char_u **)ga.ga_data)[i]; str = ((char_u **)ga.ga_data)[i];
li = listitem_alloc(); li = listitem_alloc();
@@ -15888,7 +15879,6 @@ char_u *get_var_value(char_u *name)
*/ */
void new_script_vars(scid_T id) void new_script_vars(scid_T id)
{ {
int i;
hashtab_T *ht; hashtab_T *ht;
scriptvar_T *sv; scriptvar_T *sv;
@@ -15897,7 +15887,7 @@ void new_script_vars(scid_T id)
/* Re-allocating ga_data means that an ht_array pointing to /* Re-allocating ga_data means that an ht_array pointing to
* ht_smallarray becomes invalid. We can recognize this: ht_mask is * ht_smallarray becomes invalid. We can recognize this: ht_mask is
* at its init value. Also reset "v_dict", it's always the same. */ * at its init value. Also reset "v_dict", it's always the same. */
for (i = 1; i <= ga_scripts.ga_len; ++i) { for (int i = 1; i <= ga_scripts.ga_len; ++i) {
ht = &SCRIPT_VARS(i); ht = &SCRIPT_VARS(i);
if (ht->ht_mask == HT_INIT_SIZE - 1) if (ht->ht_mask == HT_INIT_SIZE - 1)
ht->ht_array = ht->ht_smallarray; ht->ht_array = ht->ht_smallarray;
@@ -16572,8 +16562,6 @@ static char_u *find_option_end(char_u **arg, int *opt_flags)
void ex_function(exarg_T *eap) void ex_function(exarg_T *eap)
{ {
char_u *theline; char_u *theline;
int i;
int j;
int c; int c;
int saved_did_emsg; int saved_did_emsg;
int saved_wait_return = need_wait_return; int saved_wait_return = need_wait_return;
@@ -16704,7 +16692,7 @@ void ex_function(exarg_T *eap)
fp = find_func(name); fp = find_func(name);
if (fp != NULL) { if (fp != NULL) {
list_func_head(fp, TRUE); list_func_head(fp, TRUE);
for (j = 0; j < fp->uf_lines.ga_len && !got_int; ++j) { for (int j = 0; j < fp->uf_lines.ga_len && !got_int; ++j) {
if (FUNCLINE(fp, j) == NULL) if (FUNCLINE(fp, j) == NULL)
continue; continue;
msg_putchar('\n'); msg_putchar('\n');
@@ -16754,10 +16742,7 @@ void ex_function(exarg_T *eap)
arg = fudi.fd_newkey; arg = fudi.fd_newkey;
if (arg != NULL && (fudi.fd_di == NULL if (arg != NULL && (fudi.fd_di == NULL
|| fudi.fd_di->di_tv.v_type != VAR_FUNC)) { || fudi.fd_di->di_tv.v_type != VAR_FUNC)) {
if (*arg == K_SPECIAL) int j = (*arg == K_SPECIAL) ? 3 : 0;
j = 3;
else
j = 0;
while (arg[j] != NUL && (j == 0 ? eval_isnamec1(arg[j]) while (arg[j] != NUL && (j == 0 ? eval_isnamec1(arg[j])
: eval_isnamec(arg[j]))) : eval_isnamec(arg[j])))
++j; ++j;
@@ -16794,7 +16779,7 @@ void ex_function(exarg_T *eap)
arg = vim_strsave(arg); arg = vim_strsave(arg);
/* Check for duplicate argument name. */ /* Check for duplicate argument name. */
for (i = 0; i < newargs.ga_len; ++i) for (int i = 0; i < newargs.ga_len; ++i)
if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0) { if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0) {
EMSG2(_("E853: Duplicate argument name: %s"), arg); EMSG2(_("E853: Duplicate argument name: %s"), arg);
free(arg); free(arg);
@@ -17062,7 +17047,7 @@ void ex_function(exarg_T *eap)
char_u *scriptname; char_u *scriptname;
/* Check that the autoload name matches the script name. */ /* Check that the autoload name matches the script name. */
j = FAIL; int j = FAIL;
if (sourcing_name != NULL) { if (sourcing_name != NULL) {
scriptname = autoload_name(name); scriptname = autoload_name(name);
if (scriptname != NULL) { if (scriptname != NULL) {
@@ -17357,8 +17342,6 @@ static int eval_fname_sid(char_u *p)
*/ */
static void list_func_head(ufunc_T *fp, int indent) static void list_func_head(ufunc_T *fp, int indent)
{ {
int j;
msg_start(); msg_start();
if (indent) if (indent)
MSG_PUTS(" "); MSG_PUTS(" ");
@@ -17369,6 +17352,7 @@ static void list_func_head(ufunc_T *fp, int indent)
} else } else
msg_puts(fp->uf_name); msg_puts(fp->uf_name);
msg_putchar('('); msg_putchar('(');
int j;
for (j = 0; j < fp->uf_args.ga_len; ++j) { for (j = 0; j < fp->uf_args.ga_len; ++j) {
if (j) if (j)
MSG_PUTS(", "); MSG_PUTS(", ");
@@ -17522,7 +17506,6 @@ void func_dump_profile(FILE *fd)
hashitem_T *hi; hashitem_T *hi;
int todo; int todo;
ufunc_T *fp; ufunc_T *fp;
int i;
ufunc_T **sorttab; ufunc_T **sorttab;
int st_len = 0; int st_len = 0;
@@ -17553,7 +17536,7 @@ void func_dump_profile(FILE *fd)
fprintf(fd, "\n"); fprintf(fd, "\n");
fprintf(fd, "count total (s) self (s)\n"); fprintf(fd, "count total (s) self (s)\n");
for (i = 0; i < fp->uf_lines.ga_len; ++i) { for (int i = 0; i < fp->uf_lines.ga_len; ++i) {
if (FUNCLINE(fp, i) == NULL) if (FUNCLINE(fp, i) == NULL)
continue; continue;
prof_func_line(fd, fp->uf_tml_count[i], prof_func_line(fd, fp->uf_tml_count[i],
@@ -17906,7 +17889,6 @@ call_user_func (
static int depth = 0; static int depth = 0;
dictitem_T *v; dictitem_T *v;
int fixvar_idx = 0; /* index in fixvar[] */ int fixvar_idx = 0; /* index in fixvar[] */
int i;
int ai; int ai;
char_u numbuf[NUMBUFLEN]; char_u numbuf[NUMBUFLEN];
char_u *name; char_u *name;
@@ -17991,7 +17973,7 @@ call_user_func (
(varnumber_T)firstline); (varnumber_T)firstline);
add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "lastline", add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "lastline",
(varnumber_T)lastline); (varnumber_T)lastline);
for (i = 0; i < argcount; ++i) { for (int i = 0; i < argcount; ++i) {
ai = i - fp->uf_args.ga_len; ai = i - fp->uf_args.ga_len;
if (ai < 0) if (ai < 0)
/* named argument a:name */ /* named argument a:name */
@@ -18050,7 +18032,7 @@ call_user_func (
char_u *s; char_u *s;
msg_puts((char_u *)"("); msg_puts((char_u *)"(");
for (i = 0; i < argcount; ++i) { for (int i = 0; i < argcount; ++i) {
if (i > 0) if (i > 0)
msg_puts((char_u *)", "); msg_puts((char_u *)", ");
if (argvars[i].v_type == VAR_NUMBER) if (argvars[i].v_type == VAR_NUMBER)
@@ -19021,7 +19003,6 @@ char_u *do_string_sub(char_u *str, char_u *pat, char_u *sub, char_u *flags)
{ {
int sublen; int sublen;
regmatch_T regmatch; regmatch_T regmatch;
int i;
int do_all; int do_all;
char_u *tail; char_u *tail;
garray_T ga; garray_T ga;
@@ -19064,7 +19045,7 @@ char_u *do_string_sub(char_u *str, char_u *pat, char_u *sub, char_u *flags)
(regmatch.endp[0] - regmatch.startp[0]))); (regmatch.endp[0] - regmatch.startp[0])));
/* copy the text up to where the match is */ /* copy the text up to where the match is */
i = (int)(regmatch.startp[0] - tail); int i = (int)(regmatch.startp[0] - tail);
memmove((char_u *)ga.ga_data + ga.ga_len, tail, (size_t)i); memmove((char_u *)ga.ga_data + ga.ga_len, tail, (size_t)i);
/* add the substituted text */ /* add the substituted text */
(void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data (void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data

View File

@@ -5290,7 +5290,6 @@ void ex_viusage(exarg_T *eap)
void ex_helptags(exarg_T *eap) void ex_helptags(exarg_T *eap)
{ {
garray_T ga; garray_T ga;
int i, j;
int len; int len;
char_u lang[2]; char_u lang[2];
expand_T xpc; expand_T xpc;
@@ -5331,7 +5330,7 @@ void ex_helptags(exarg_T *eap)
/* Go over all files in the directory to find out what languages are /* Go over all files in the directory to find out what languages are
* present. */ * present. */
ga_init(&ga, 1, 10); ga_init(&ga, 1, 10);
for (i = 0; i < filecount; ++i) { for (int i = 0; i < filecount; ++i) {
len = (int)STRLEN(files[i]); len = (int)STRLEN(files[i]);
if (len > 4) { if (len > 4) {
if (STRICMP(files[i] + len - 4, ".txt") == 0) { if (STRICMP(files[i] + len - 4, ".txt") == 0) {
@@ -5348,6 +5347,7 @@ void ex_helptags(exarg_T *eap)
} else } else
continue; continue;
int j;
/* Did we find this language already? */ /* Did we find this language already? */
for (j = 0; j < ga.ga_len; j += 2) for (j = 0; j < ga.ga_len; j += 2)
if (STRNCMP(lang, ((char_u *)ga.ga_data) + j, 2) == 0) if (STRNCMP(lang, ((char_u *)ga.ga_data) + j, 2) == 0)
@@ -5364,7 +5364,7 @@ void ex_helptags(exarg_T *eap)
/* /*
* Loop over the found languages to generate a tags file for each one. * Loop over the found languages to generate a tags file for each one.
*/ */
for (j = 0; j < ga.ga_len; j += 2) { for (int j = 0; j < ga.ga_len; j += 2) {
STRCPY(fname, "tags-xx"); STRCPY(fname, "tags-xx");
fname[5] = ((char_u *)ga.ga_data)[j]; fname[5] = ((char_u *)ga.ga_data)[j];
fname[6] = ((char_u *)ga.ga_data)[j + 1]; fname[6] = ((char_u *)ga.ga_data)[j + 1];
@@ -5403,7 +5403,6 @@ helptags_one (
char_u *p1, *p2; char_u *p1, *p2;
int fi; int fi;
char_u *s; char_u *s;
int i;
char_u *fname; char_u *fname;
int dirlen; int dirlen;
int utf8 = MAYBE; int utf8 = MAYBE;
@@ -5547,7 +5546,7 @@ helptags_one (
/* /*
* Check for duplicates. * Check for duplicates.
*/ */
for (i = 1; i < ga.ga_len; ++i) { for (int i = 1; i < ga.ga_len; ++i) {
p1 = ((char_u **)ga.ga_data)[i - 1]; p1 = ((char_u **)ga.ga_data)[i - 1];
p2 = ((char_u **)ga.ga_data)[i]; p2 = ((char_u **)ga.ga_data)[i];
while (*p1 == *p2) { while (*p1 == *p2) {
@@ -5571,7 +5570,7 @@ helptags_one (
/* /*
* Write the tags into the file. * Write the tags into the file.
*/ */
for (i = 0; i < ga.ga_len; ++i) { for (int i = 0; i < ga.ga_len; ++i) {
s = ((char_u **)ga.ga_data)[i]; s = ((char_u **)ga.ga_data)[i];
if (STRNCMP(s, "help-tags\t", 10) == 0) if (STRNCMP(s, "help-tags\t", 10) == 0)
/* help-tags entry was added in formatted form */ /* help-tags entry was added in formatted form */
@@ -5591,7 +5590,7 @@ helptags_one (
if (mix) if (mix)
got_int = FALSE; /* continue with other languages */ got_int = FALSE; /* continue with other languages */
for (i = 0; i < ga.ga_len; ++i) for (int i = 0; i < ga.ga_len; ++i)
free(((char_u **)ga.ga_data)[i]); free(((char_u **)ga.ga_data)[i]);
ga_clear(&ga); ga_clear(&ga);
fclose(fd_tags); /* there is no check for an error... */ fclose(fd_tags); /* there is no check for an error... */

View File

@@ -557,7 +557,6 @@ void ex_breakdel(exarg_T *eap)
int nr; int nr;
int todel = -1; int todel = -1;
int del_all = FALSE; int del_all = FALSE;
int i;
linenr_T best_lnum = 0; linenr_T best_lnum = 0;
garray_T *gap; garray_T *gap;
@@ -569,7 +568,7 @@ void ex_breakdel(exarg_T *eap)
if (vim_isdigit(*eap->arg)) { if (vim_isdigit(*eap->arg)) {
/* ":breakdel {nr}" */ /* ":breakdel {nr}" */
nr = atol((char *)eap->arg); nr = atol((char *)eap->arg);
for (i = 0; i < gap->ga_len; ++i) for (int i = 0; i < gap->ga_len; ++i)
if (DEBUGGY(gap, i).dbg_nr == nr) { if (DEBUGGY(gap, i).dbg_nr == nr) {
todel = i; todel = i;
break; break;
@@ -582,7 +581,7 @@ void ex_breakdel(exarg_T *eap)
if (dbg_parsearg(eap->arg, gap) == FAIL) if (dbg_parsearg(eap->arg, gap) == FAIL)
return; return;
bp = &DEBUGGY(gap, gap->ga_len); bp = &DEBUGGY(gap, gap->ga_len);
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
bpi = &DEBUGGY(gap, i); bpi = &DEBUGGY(gap, i);
if (bp->dbg_type == bpi->dbg_type if (bp->dbg_type == bpi->dbg_type
&& STRCMP(bp->dbg_name, bpi->dbg_name) == 0 && STRCMP(bp->dbg_name, bpi->dbg_name) == 0
@@ -625,12 +624,11 @@ void ex_breakdel(exarg_T *eap)
void ex_breaklist(exarg_T *eap) void ex_breaklist(exarg_T *eap)
{ {
struct debuggy *bp; struct debuggy *bp;
int i;
if (GA_EMPTY(&dbg_breakp)) if (GA_EMPTY(&dbg_breakp))
MSG(_("No breakpoints defined")); MSG(_("No breakpoints defined"));
else else
for (i = 0; i < dbg_breakp.ga_len; ++i) { for (int i = 0; i < dbg_breakp.ga_len; ++i) {
bp = &BREAKP(i); bp = &BREAKP(i);
if (bp->dbg_type == DBG_FILE) if (bp->dbg_type == DBG_FILE)
home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE); home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
@@ -683,7 +681,6 @@ debuggy_find (
) )
{ {
struct debuggy *bp; struct debuggy *bp;
int i;
linenr_T lnum = 0; linenr_T lnum = 0;
regmatch_T regmatch; regmatch_T regmatch;
char_u *name = fname; char_u *name = fname;
@@ -700,7 +697,7 @@ debuggy_find (
STRCPY(name + 5, fname + 3); STRCPY(name + 5, fname + 3);
} }
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
/* Skip entries that are not useful or are for a line that is beyond /* Skip entries that are not useful or are for a line that is beyond
* an already found breakpoint. */ * an already found breakpoint. */
bp = &DEBUGGY(gap, i); bp = &DEBUGGY(gap, i);
@@ -1112,13 +1109,11 @@ void prof_inchar_exit(void)
*/ */
static void script_dump_profile(FILE *fd) static void script_dump_profile(FILE *fd)
{ {
int id;
scriptitem_T *si; scriptitem_T *si;
int i;
FILE *sfd; FILE *sfd;
sn_prl_T *pp; sn_prl_T *pp;
for (id = 1; id <= script_items.ga_len; ++id) { for (int id = 1; id <= script_items.ga_len; ++id) {
si = &SCRIPT_ITEM(id); si = &SCRIPT_ITEM(id);
if (si->sn_prof_on) { if (si->sn_prof_on) {
fprintf(fd, "SCRIPT %s\n", si->sn_name); fprintf(fd, "SCRIPT %s\n", si->sn_name);
@@ -1135,7 +1130,7 @@ static void script_dump_profile(FILE *fd)
if (sfd == NULL) if (sfd == NULL)
fprintf(fd, "Cannot open file!\n"); fprintf(fd, "Cannot open file!\n");
else { else {
for (i = 0; i < si->sn_prl_ga.ga_len; ++i) { for (int i = 0; i < si->sn_prl_ga.ga_len; ++i) {
if (vim_fgets(IObuff, IOSIZE, sfd)) if (vim_fgets(IObuff, IOSIZE, sfd))
break; break;
pp = &PRL_ITEM(si, i); pp = &PRL_ITEM(si, i);
@@ -1579,7 +1574,6 @@ do_arglist (
garray_T new_ga; garray_T new_ga;
int exp_count; int exp_count;
char_u **exp_files; char_u **exp_files;
int i;
char_u *p; char_u *p;
int match; int match;
@@ -1597,7 +1591,7 @@ do_arglist (
* argument list. * argument list.
*/ */
regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */ regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */
for (i = 0; i < new_ga.ga_len && !got_int; ++i) { for (int i = 0; i < new_ga.ga_len && !got_int; ++i) {
p = ((char_u **)new_ga.ga_data)[i]; p = ((char_u **)new_ga.ga_data)[i];
p = file_pat_to_reg_pat(p, NULL, NULL, FALSE); p = file_pat_to_reg_pat(p, NULL, NULL, FALSE);
if (p == NULL) if (p == NULL)
@@ -1629,7 +1623,7 @@ do_arglist (
} }
ga_clear(&new_ga); ga_clear(&new_ga);
} else { } else {
i = expand_wildcards(new_ga.ga_len, (char_u **)new_ga.ga_data, int i = expand_wildcards(new_ga.ga_len, (char_u **)new_ga.ga_data,
&exp_count, &exp_files, EW_DIR|EW_FILE|EW_ADDSLASH|EW_NOTFOUND); &exp_count, &exp_files, EW_DIR|EW_FILE|EW_ADDSLASH|EW_NOTFOUND);
ga_clear(&new_ga); ga_clear(&new_ga);
if (i == FAIL) if (i == FAIL)
@@ -1714,8 +1708,6 @@ void check_arg_idx(win_T *win)
*/ */
void ex_args(exarg_T *eap) void ex_args(exarg_T *eap)
{ {
int i;
if (eap->cmdidx != CMD_args) { if (eap->cmdidx != CMD_args) {
alist_unlink(ALIST(curwin)); alist_unlink(ALIST(curwin));
if (eap->cmdidx == CMD_argglobal) if (eap->cmdidx == CMD_argglobal)
@@ -1738,7 +1730,7 @@ void ex_args(exarg_T *eap)
/* Overwrite the command, for a short list there is no scrolling /* Overwrite the command, for a short list there is no scrolling
* required and no wait_return(). */ * required and no wait_return(). */
gotocmdline(TRUE); gotocmdline(TRUE);
for (i = 0; i < ARGCOUNT; ++i) { for (int i = 0; i < ARGCOUNT; ++i) {
if (i == curwin->w_arg_idx) if (i == curwin->w_arg_idx)
msg_putchar('['); msg_putchar('[');
msg_outtrans(alist_name(&ARGLIST[i])); msg_outtrans(alist_name(&ARGLIST[i]));
@@ -1754,7 +1746,7 @@ void ex_args(exarg_T *eap)
* ":argslocal": make a local copy of the global argument list. * ":argslocal": make a local copy of the global argument list.
*/ */
ga_grow(gap, GARGCOUNT); ga_grow(gap, GARGCOUNT);
for (i = 0; i < GARGCOUNT; ++i) for (int i = 0; i < GARGCOUNT; ++i)
if (GARGLIST[i].ae_fname != NULL) { if (GARGLIST[i].ae_fname != NULL) {
AARGLIST(curwin->w_alist)[gap->ga_len].ae_fname = AARGLIST(curwin->w_alist)[gap->ga_len].ae_fname =
vim_strsave(GARGLIST[i].ae_fname); vim_strsave(GARGLIST[i].ae_fname);
@@ -1941,18 +1933,15 @@ void ex_argadd(exarg_T *eap)
*/ */
void ex_argdelete(exarg_T *eap) void ex_argdelete(exarg_T *eap)
{ {
int i;
int n;
if (eap->addr_count > 0) { if (eap->addr_count > 0) {
/* ":1,4argdel": Delete all arguments in the range. */ /* ":1,4argdel": Delete all arguments in the range. */
if (eap->line2 > ARGCOUNT) if (eap->line2 > ARGCOUNT)
eap->line2 = ARGCOUNT; eap->line2 = ARGCOUNT;
n = eap->line2 - eap->line1 + 1; int n = eap->line2 - eap->line1 + 1;
if (*eap->arg != NUL || n <= 0) if (*eap->arg != NUL || n <= 0)
EMSG(_(e_invarg)); EMSG(_(e_invarg));
else { else {
for (i = eap->line1; i <= eap->line2; ++i) for (int i = eap->line1; i <= eap->line2; ++i)
free(ARGLIST[i - 1].ae_fname); free(ARGLIST[i - 1].ae_fname);
memmove(ARGLIST + eap->line1 - 1, ARGLIST + eap->line2, memmove(ARGLIST + eap->line1 - 1, ARGLIST + eap->line2,
(size_t)((ARGCOUNT - eap->line2) * sizeof(aentry_T))); (size_t)((ARGCOUNT - eap->line2) * sizeof(aentry_T)));
@@ -2107,8 +2096,6 @@ alist_add_list (
int after /* where to add: 0 = before first one */ int after /* where to add: 0 = before first one */
) )
{ {
int i;
ga_grow(&ALIST(curwin)->al_ga, count); ga_grow(&ALIST(curwin)->al_ga, count);
{ {
if (after < 0) if (after < 0)
@@ -2118,7 +2105,7 @@ alist_add_list (
if (after < ARGCOUNT) if (after < ARGCOUNT)
memmove(&(ARGLIST[after + count]), &(ARGLIST[after]), memmove(&(ARGLIST[after + count]), &(ARGLIST[after]),
(ARGCOUNT - after) * sizeof(aentry_T)); (ARGCOUNT - after) * sizeof(aentry_T));
for (i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
ARGLIST[after + i].ae_fname = files[i]; ARGLIST[after + i].ae_fname = files[i];
ARGLIST[after + i].ae_fnum = buflist_add(files[i], BLN_LISTED); ARGLIST[after + i].ae_fnum = buflist_add(files[i], BLN_LISTED);
} }
@@ -2690,9 +2677,7 @@ theend:
*/ */
void ex_scriptnames(exarg_T *eap) void ex_scriptnames(exarg_T *eap)
{ {
int i; for (int i = 1; i <= script_items.ga_len && !got_int; ++i)
for (i = 1; i <= script_items.ga_len && !got_int; ++i)
if (SCRIPT_ITEM(i).sn_name != NULL) { if (SCRIPT_ITEM(i).sn_name != NULL) {
home_replace(NULL, SCRIPT_ITEM(i).sn_name, home_replace(NULL, SCRIPT_ITEM(i).sn_name,
NameBuff, MAXPATHL, TRUE); NameBuff, MAXPATHL, TRUE);
@@ -2706,11 +2691,11 @@ void ex_scriptnames(exarg_T *eap)
*/ */
void scriptnames_slash_adjust(void) void scriptnames_slash_adjust(void)
{ {
int i; for (int i = 1; i <= script_items.ga_len; ++i) {
if (SCRIPT_ITEM(i).sn_name != NULL) {
for (i = 1; i <= script_items.ga_len; ++i)
if (SCRIPT_ITEM(i).sn_name != NULL)
slash_adjust(SCRIPT_ITEM(i).sn_name); slash_adjust(SCRIPT_ITEM(i).sn_name);
}
}
} }
# endif # endif
@@ -2736,9 +2721,7 @@ char_u *get_scriptname(scid_T id)
# if defined(EXITFREE) || defined(PROTO) # if defined(EXITFREE) || defined(PROTO)
void free_scriptnames(void) void free_scriptnames(void)
{ {
int i; for (int i = script_items.ga_len; i > 0; --i)
for (i = script_items.ga_len; i > 0; --i)
free(SCRIPT_ITEM(i).sn_name); free(SCRIPT_ITEM(i).sn_name);
ga_clear(&script_items); ga_clear(&script_items);
} }
@@ -2809,10 +2792,7 @@ char_u *getsourceline(int c, void *cookie, int indent)
/* Adjust the growsize to the current length to speed up /* Adjust the growsize to the current length to speed up
* concatenating many lines. */ * concatenating many lines. */
if (ga.ga_len > 400) { if (ga.ga_len > 400) {
if (ga.ga_len > 8000) ga.ga_growsize = (ga.ga_len > 8000) ? 8000 : ga.ga_len;
ga.ga_growsize = 8000;
else
ga.ga_growsize = ga.ga_len;
} }
ga_concat(&ga, p + 1); ga_concat(&ga, p + 1);
} }

View File

@@ -4259,7 +4259,6 @@ static struct {
static void uc_list(char_u *name, size_t name_len) static void uc_list(char_u *name, size_t name_len)
{ {
int i, j;
int found = FALSE; int found = FALSE;
ucmd_T *cmd; ucmd_T *cmd;
int len; int len;
@@ -4268,6 +4267,7 @@ static void uc_list(char_u *name, size_t name_len)
gap = &curbuf->b_ucmds; gap = &curbuf->b_ucmds;
for (;; ) { for (;; ) {
int i;
for (i = 0; i < gap->ga_len; ++i) { for (i = 0; i < gap->ga_len; ++i) {
cmd = USER_CMD_GA(gap, i); cmd = USER_CMD_GA(gap, i);
a = (long)cmd->uc_argt; a = (long)cmd->uc_argt;
@@ -4334,7 +4334,7 @@ static void uc_list(char_u *name, size_t name_len)
} while (len < 11); } while (len < 11);
/* Completion */ /* Completion */
for (j = 0; command_complete[j].expand != 0; ++j) for (int j = 0; command_complete[j].expand != 0; ++j)
if (command_complete[j].expand == cmd->uc_compl) { if (command_complete[j].expand == cmd->uc_compl) {
STRCPY(IObuff + len, command_complete[j].name); STRCPY(IObuff + len, command_complete[j].name);
len += (int)STRLEN(IObuff + len); len += (int)STRLEN(IObuff + len);
@@ -4564,10 +4564,9 @@ void ex_comclear(exarg_T *eap)
*/ */
void uc_clear(garray_T *gap) void uc_clear(garray_T *gap)
{ {
int i;
ucmd_T *cmd; ucmd_T *cmd;
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
cmd = USER_CMD_GA(gap, i); cmd = USER_CMD_GA(gap, i);
free(cmd->uc_name); free(cmd->uc_name);
free(cmd->uc_rep); free(cmd->uc_rep);
@@ -8481,7 +8480,6 @@ ses_arglist (
unsigned *flagp unsigned *flagp
) )
{ {
int i;
char_u *buf = NULL; char_u *buf = NULL;
char_u *s; char_u *s;
@@ -8491,7 +8489,7 @@ ses_arglist (
if (put_line(fd, "silent! argdel *") == FAIL) { if (put_line(fd, "silent! argdel *") == FAIL) {
return FAIL; return FAIL;
} }
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
/* NULL file names are skipped (only happens when out of memory). */ /* NULL file names are skipped (only happens when out of memory). */
s = alist_name(&((aentry_T *)gap->ga_data)[i]); s = alist_name(&((aentry_T *)gap->ga_data)[i]);
if (s != NULL) { if (s != NULL) {

View File

@@ -5655,9 +5655,7 @@ void aubuflocal_remove(buf_T *buf)
*/ */
static int au_new_group(char_u *name) static int au_new_group(char_u *name)
{ {
int i; int i = au_find_group(name);
i = au_find_group(name);
if (i == AUGROUP_ERROR) { /* the group doesn't exist yet, add it */ if (i == AUGROUP_ERROR) { /* the group doesn't exist yet, add it */
/* First try using a free entry. */ /* First try using a free entry. */
for (i = 0; i < augroups.ga_len; ++i) for (i = 0; i < augroups.ga_len; ++i)
@@ -5694,11 +5692,11 @@ static void au_del_group(char_u *name)
*/ */
static int au_find_group(char_u *name) static int au_find_group(char_u *name)
{ {
int i; for (int i = 0; i < augroups.ga_len; ++i) {
if (AUGROUP_NAME(i) != NULL && STRCMP(AUGROUP_NAME(i), name) == 0) {
for (i = 0; i < augroups.ga_len; ++i)
if (AUGROUP_NAME(i) != NULL && STRCMP(AUGROUP_NAME(i), name) == 0)
return i; return i;
}
}
return AUGROUP_ERROR; return AUGROUP_ERROR;
} }
@@ -5715,8 +5713,6 @@ int au_has_group(char_u *name)
*/ */
void do_augroup(char_u *arg, int del_group) void do_augroup(char_u *arg, int del_group)
{ {
int i;
if (del_group) { if (del_group) {
if (*arg == NUL) if (*arg == NUL)
EMSG(_(e_argreq)); EMSG(_(e_argreq));
@@ -5725,12 +5721,12 @@ void do_augroup(char_u *arg, int del_group)
} else if (STRICMP(arg, "end") == 0) /* ":aug end": back to group 0 */ } else if (STRICMP(arg, "end") == 0) /* ":aug end": back to group 0 */
current_augroup = AUGROUP_DEFAULT; current_augroup = AUGROUP_DEFAULT;
else if (*arg) { /* ":aug xxx": switch to group xxx */ else if (*arg) { /* ":aug xxx": switch to group xxx */
i = au_new_group(arg); int i = au_new_group(arg);
if (i != AUGROUP_ERROR) if (i != AUGROUP_ERROR)
current_augroup = i; current_augroup = i;
} else { /* ":aug": list the group names */ } else { /* ":aug": list the group names */
msg_start(); msg_start();
for (i = 0; i < augroups.ga_len; ++i) { for (int i = 0; i < augroups.ga_len; ++i) {
if (AUGROUP_NAME(i) != NULL) { if (AUGROUP_NAME(i) != NULL) {
msg_puts(AUGROUP_NAME(i)); msg_puts(AUGROUP_NAME(i));
msg_puts((char_u *)" "); msg_puts((char_u *)" ");

View File

@@ -476,7 +476,6 @@ void newFoldLevel(void)
static void newFoldLevelWin(win_T *wp) static void newFoldLevelWin(win_T *wp)
{ {
fold_T *fp; fold_T *fp;
int i;
checkupdate(wp); checkupdate(wp);
if (wp->w_fold_manual) { if (wp->w_fold_manual) {
@@ -484,7 +483,7 @@ static void newFoldLevelWin(win_T *wp)
* manual open/close will then change the flags to FD_OPEN or * manual open/close will then change the flags to FD_OPEN or
* FD_CLOSED for those folds that don't use 'foldlevel'. */ * FD_CLOSED for those folds that don't use 'foldlevel'. */
fp = (fold_T *)wp->w_folds.ga_data; fp = (fold_T *)wp->w_folds.ga_data;
for (i = 0; i < wp->w_folds.ga_len; ++i) for (int i = 0; i < wp->w_folds.ga_len; ++i)
fp[i].fd_flags = FD_LEVEL; fp[i].fd_flags = FD_LEVEL;
wp->w_fold_manual = FALSE; wp->w_fold_manual = FALSE;
} }
@@ -510,10 +509,9 @@ static int checkCloseRec(garray_T *gap, linenr_T lnum, int level)
{ {
fold_T *fp; fold_T *fp;
int retval = FALSE; int retval = FALSE;
int i;
fp = (fold_T *)gap->ga_data; fp = (fold_T *)gap->ga_data;
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
/* Only manually opened folds may need to be closed. */ /* Only manually opened folds may need to be closed. */
if (fp[i].fd_flags == FD_OPEN) { if (fp[i].fd_flags == FD_OPEN) {
if (level <= 0 && (lnum < fp[i].fd_top if (level <= 0 && (lnum < fp[i].fd_top
@@ -1004,7 +1002,6 @@ void foldAdjustCursor(void)
*/ */
void cloneFoldGrowArray(garray_T *from, garray_T *to) void cloneFoldGrowArray(garray_T *from, garray_T *to)
{ {
int i;
fold_T *from_p; fold_T *from_p;
fold_T *to_p; fold_T *to_p;
@@ -1018,7 +1015,7 @@ void cloneFoldGrowArray(garray_T *from, garray_T *to)
from_p = (fold_T *)from->ga_data; from_p = (fold_T *)from->ga_data;
to_p = (fold_T *)to->ga_data; to_p = (fold_T *)to->ga_data;
for (i = 0; i < from->ga_len; i++) { for (int i = 0; i < from->ga_len; i++) {
to_p->fd_top = from_p->fd_top; to_p->fd_top = from_p->fd_top;
to_p->fd_len = from_p->fd_len; to_p->fd_len = from_p->fd_len;
to_p->fd_flags = from_p->fd_flags; to_p->fd_flags = from_p->fd_flags;
@@ -1041,7 +1038,6 @@ static int foldFind(garray_T *gap, linenr_T lnum, fold_T **fpp)
{ {
linenr_T low, high; linenr_T low, high;
fold_T *fp; fold_T *fp;
int i;
/* /*
* Perform a binary search. * Perform a binary search.
@@ -1052,7 +1048,7 @@ static int foldFind(garray_T *gap, linenr_T lnum, fold_T **fpp)
low = 0; low = 0;
high = gap->ga_len - 1; high = gap->ga_len - 1;
while (low <= high) { while (low <= high) {
i = (low + high) / 2; int i = (low + high) / 2;
if (fp[i].fd_top > lnum) if (fp[i].fd_top > lnum)
/* fold below lnum, adjust high */ /* fold below lnum, adjust high */
high = i - 1; high = i - 1;
@@ -1275,11 +1271,10 @@ setManualFoldWin (
*/ */
static void foldOpenNested(fold_T *fpr) static void foldOpenNested(fold_T *fpr)
{ {
int i;
fold_T *fp; fold_T *fp;
fp = (fold_T *)fpr->fd_nested.ga_data; fp = (fold_T *)fpr->fd_nested.ga_data;
for (i = 0; i < fpr->fd_nested.ga_len; ++i) { for (int i = 0; i < fpr->fd_nested.ga_len; ++i) {
foldOpenNested(&fp[i]); foldOpenNested(&fp[i]);
fp[i].fd_flags = FD_OPEN; fp[i].fd_flags = FD_OPEN;
} }
@@ -1342,9 +1337,7 @@ static void deleteFoldEntry(garray_T *gap, int idx, int recursive)
*/ */
void deleteFoldRecurse(garray_T *gap) void deleteFoldRecurse(garray_T *gap)
{ {
int i; for (int i = 0; i < gap->ga_len; ++i)
for (i = 0; i < gap->ga_len; ++i)
deleteFoldRecurse(&(((fold_T *)(gap->ga_data))[i].fd_nested)); deleteFoldRecurse(&(((fold_T *)(gap->ga_data))[i].fd_nested));
ga_clear(gap); ga_clear(gap);
} }
@@ -1370,7 +1363,6 @@ void foldMarkAdjust(win_T *wp, linenr_T line1, linenr_T line2, long amount, long
static void foldMarkAdjustRecurse(garray_T *gap, linenr_T line1, linenr_T line2, long amount, long amount_after) static void foldMarkAdjustRecurse(garray_T *gap, linenr_T line1, linenr_T line2, long amount, long amount_after)
{ {
fold_T *fp; fold_T *fp;
int i;
linenr_T last; linenr_T last;
linenr_T top; linenr_T top;
@@ -1387,7 +1379,7 @@ static void foldMarkAdjustRecurse(garray_T *gap, linenr_T line1, linenr_T line2,
/* /*
* Adjust all folds below "line1" that are affected. * Adjust all folds below "line1" that are affected.
*/ */
for (i = (int)(fp - (fold_T *)gap->ga_data); i < gap->ga_len; ++i, ++fp) { for (int i = (int)(fp - (fold_T *)gap->ga_data); i < gap->ga_len; ++i, ++fp) {
/* /*
* Check for these situations: * Check for these situations:
* 1 2 3 * 1 2 3
@@ -1468,13 +1460,12 @@ int getDeepestNesting(void)
static int getDeepestNestingRecurse(garray_T *gap) static int getDeepestNestingRecurse(garray_T *gap)
{ {
int i;
int level; int level;
int maxlevel = 0; int maxlevel = 0;
fold_T *fp; fold_T *fp;
fp = (fold_T *)gap->ga_data; fp = (fold_T *)gap->ga_data;
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
level = getDeepestNestingRecurse(&fp[i].fd_nested) + 1; level = getDeepestNestingRecurse(&fp[i].fd_nested) + 1;
if (level > maxlevel) if (level > maxlevel)
maxlevel = level; maxlevel = level;
@@ -1561,12 +1552,10 @@ checkSmall (
*/ */
static void setSmallMaybe(garray_T *gap) static void setSmallMaybe(garray_T *gap)
{ {
int i; fold_T *fp = (fold_T *)gap->ga_data;
fold_T *fp; for (int i = 0; i < gap->ga_len; ++i) {
fp = (fold_T *)gap->ga_data;
for (i = 0; i < gap->ga_len; ++i)
fp[i].fd_small = MAYBE; fp[i].fd_small = MAYBE;
}
} }
/* foldCreateMarkers() {{{2 */ /* foldCreateMarkers() {{{2 */
@@ -1632,12 +1621,12 @@ deleteFoldMarkers (
linenr_T lnum_off /* offset for fp->fd_top */ linenr_T lnum_off /* offset for fp->fd_top */
) )
{ {
int i; if (recursive) {
for (int i = 0; i < fp->fd_nested.ga_len; ++i) {
if (recursive)
for (i = 0; i < fp->fd_nested.ga_len; ++i)
deleteFoldMarkers((fold_T *)fp->fd_nested.ga_data + i, TRUE, deleteFoldMarkers((fold_T *)fp->fd_nested.ga_data + i, TRUE,
lnum_off + fp->fd_top); lnum_off + fp->fd_top);
}
}
foldDelMarker(fp->fd_top + lnum_off, curwin->w_p_fmr, foldstartmarkerlen); foldDelMarker(fp->fd_top + lnum_off, curwin->w_p_fmr, foldstartmarkerlen);
foldDelMarker(fp->fd_top + lnum_off + fp->fd_len - 1, foldDelMarker(fp->fd_top + lnum_off + fp->fd_len - 1,
foldendmarker, foldendmarkerlen); foldendmarker, foldendmarkerlen);
@@ -2908,11 +2897,8 @@ int put_folds(FILE *fd, win_T *wp)
*/ */
static int put_folds_recurse(FILE *fd, garray_T *gap, linenr_T off) static int put_folds_recurse(FILE *fd, garray_T *gap, linenr_T off)
{ {
int i; fold_T *fp = (fold_T *)gap->ga_data;
fold_T *fp; for (int i = 0; i < gap->ga_len; i++) {
fp = (fold_T *)gap->ga_data;
for (i = 0; i < gap->ga_len; i++) {
/* Do nested folds first, they will be created closed. */ /* Do nested folds first, they will be created closed. */
if (put_folds_recurse(fd, &fp->fd_nested, off + fp->fd_top) == FAIL) if (put_folds_recurse(fd, &fp->fd_nested, off + fp->fd_top) == FAIL)
return FAIL; return FAIL;
@@ -2933,12 +2919,10 @@ static int put_folds_recurse(FILE *fd, garray_T *gap, linenr_T off)
*/ */
static int put_foldopen_recurse(FILE *fd, win_T *wp, garray_T *gap, linenr_T off) static int put_foldopen_recurse(FILE *fd, win_T *wp, garray_T *gap, linenr_T off)
{ {
int i;
int level; int level;
fold_T *fp;
fp = (fold_T *)gap->ga_data; fold_T *fp = (fold_T *)gap->ga_data;
for (i = 0; i < gap->ga_len; i++) { for (int i = 0; i < gap->ga_len; i++) {
if (fp->fd_flags != FD_LEVEL) { if (fp->fd_flags != FD_LEVEL) {
if (!GA_EMPTY(&fp->fd_nested)) { if (!GA_EMPTY(&fp->fd_nested)) {
/* open nested folds while this fold is open */ /* open nested folds while this fold is open */

View File

@@ -35,8 +35,7 @@ void ga_clear(garray_T *gap)
/// @param gap /// @param gap
void ga_clear_strings(garray_T *gap) void ga_clear_strings(garray_T *gap)
{ {
int i; for (int i = 0; i < gap->ga_len; ++i) {
for (i = 0; i < gap->ga_len; ++i) {
free(((char_u **)(gap->ga_data))[i]); free(((char_u **)(gap->ga_data))[i]);
} }
ga_clear(gap); ga_clear(gap);

View File

@@ -1454,7 +1454,6 @@ void ex_menutranslate(exarg_T *eap)
{ {
char_u *arg = eap->arg; char_u *arg = eap->arg;
menutrans_T *tp; menutrans_T *tp;
int i;
char_u *from, *from_noamp, *to; char_u *from, *from_noamp, *to;
if (menutrans_ga.ga_itemsize == 0) if (menutrans_ga.ga_itemsize == 0)
@@ -1465,7 +1464,7 @@ void ex_menutranslate(exarg_T *eap)
*/ */
if (STRNCMP(arg, "clear", 5) == 0 && ends_excmd(*skipwhite(arg + 5))) { if (STRNCMP(arg, "clear", 5) == 0 && ends_excmd(*skipwhite(arg + 5))) {
tp = (menutrans_T *)menutrans_ga.ga_data; tp = (menutrans_T *)menutrans_ga.ga_data;
for (i = 0; i < menutrans_ga.ga_len; ++i) { for (int i = 0; i < menutrans_ga.ga_len; ++i) {
free(tp[i].from); free(tp[i].from);
free(tp[i].from_noamp); free(tp[i].from_noamp);
free(tp[i].to); free(tp[i].to);
@@ -1526,24 +1525,26 @@ static char_u *menu_skip_part(char_u *p)
static char_u *menutrans_lookup(char_u *name, int len) static char_u *menutrans_lookup(char_u *name, int len)
{ {
menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data; menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data;
int i;
char_u *dname; char_u *dname;
for (i = 0; i < menutrans_ga.ga_len; ++i) for (int i = 0; i < menutrans_ga.ga_len; ++i) {
if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL) if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL) {
return tp[i].to; return tp[i].to;
}
}
/* Now try again while ignoring '&' characters. */ /* Now try again while ignoring '&' characters. */
i = name[len]; char c = name[len];
name[len] = NUL; name[len] = NUL;
dname = menu_text(name, NULL, NULL); dname = menu_text(name, NULL, NULL);
name[len] = i; name[len] = c;
if (dname != NULL) { if (dname != NULL) {
for (i = 0; i < menutrans_ga.ga_len; ++i) for (int i = 0; i < menutrans_ga.ga_len; ++i) {
if (STRCMP(dname, tp[i].from_noamp) == 0) { if (STRCMP(dname, tp[i].from_noamp) == 0) {
free(dname); free(dname);
return tp[i].to; return tp[i].to;
} }
}
free(dname); free(dname);
} }

View File

@@ -3153,12 +3153,11 @@ char_u *get_users(expand_T *xp, int idx)
*/ */
int match_user(char_u *name) int match_user(char_u *name)
{ {
int i;
int n = (int)STRLEN(name); int n = (int)STRLEN(name);
int result = 0; int result = 0;
init_users(); init_users();
for (i = 0; i < ga_users.ga_len; i++) { for (int i = 0; i < ga_users.ga_len; i++) {
if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0) if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0)
return 2; /* full match */ return 2; /* full match */
if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0) if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0)

View File

@@ -588,13 +588,12 @@ static int find_previous_pathsep(char_u *path, char_u **psep)
*/ */
static int is_unique(char_u *maybe_unique, garray_T *gap, int i) static int is_unique(char_u *maybe_unique, garray_T *gap, int i)
{ {
int j;
int candidate_len; int candidate_len;
int other_path_len; int other_path_len;
char_u **other_paths = (char_u **)gap->ga_data; char_u **other_paths = (char_u **)gap->ga_data;
char_u *rival; char_u *rival;
for (j = 0; j < gap->ga_len; j++) { for (int j = 0; j < gap->ga_len; j++) {
if (j == i) if (j == i)
continue; /* don't compare it with itself */ continue; /* don't compare it with itself */
@@ -686,12 +685,11 @@ static void expand_path_option(char_u *curdir, garray_T *gap)
*/ */
static char_u *get_path_cutoff(char_u *fname, garray_T *gap) static char_u *get_path_cutoff(char_u *fname, garray_T *gap)
{ {
int i;
int maxlen = 0; int maxlen = 0;
char_u **path_part = (char_u **)gap->ga_data; char_u **path_part = (char_u **)gap->ga_data;
char_u *cutoff = NULL; char_u *cutoff = NULL;
for (i = 0; i < gap->ga_len; i++) { for (int i = 0; i < gap->ga_len; i++) {
int j = 0; int j = 0;
while ((fname[j] == path_part[i][j] while ((fname[j] == path_part[i][j]
@@ -718,7 +716,6 @@ static char_u *get_path_cutoff(char_u *fname, garray_T *gap)
*/ */
static void uniquefy_paths(garray_T *gap, char_u *pattern) static void uniquefy_paths(garray_T *gap, char_u *pattern)
{ {
int i;
int len; int len;
char_u **fnames = (char_u **)gap->ga_data; char_u **fnames = (char_u **)gap->ga_data;
int sort_again = FALSE; int sort_again = FALSE;
@@ -760,7 +757,7 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern)
in_curdir = xcalloc(gap->ga_len, sizeof(char_u *)); in_curdir = xcalloc(gap->ga_len, sizeof(char_u *));
for (i = 0; i < gap->ga_len && !got_int; i++) { for (int i = 0; i < gap->ga_len && !got_int; i++) {
char_u *path = fnames[i]; char_u *path = fnames[i];
int is_in_curdir; int is_in_curdir;
char_u *dir_end = gettail_dir(path); char_u *dir_end = gettail_dir(path);
@@ -813,7 +810,7 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern)
} }
/* Shorten filenames in /in/current/directory/{filename} */ /* Shorten filenames in /in/current/directory/{filename} */
for (i = 0; i < gap->ga_len && !got_int; i++) { for (int i = 0; i < gap->ga_len && !got_int; i++) {
char_u *rel_path; char_u *rel_path;
char_u *path = in_curdir[i]; char_u *path = in_curdir[i];
@@ -843,7 +840,7 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern)
free(curdir); free(curdir);
if (in_curdir != NULL) { if (in_curdir != NULL) {
for (i = 0; i < gap->ga_len; i++) for (int i = 0; i < gap->ga_len; i++)
free(in_curdir[i]); free(in_curdir[i]);
free(in_curdir); free(in_curdir);
} }

View File

@@ -1573,7 +1573,6 @@ static void find_word(matchinf_T *mip, int mode)
int save_result = mip->mi_result; int save_result = mip->mi_result;
char_u *save_end = mip->mi_end; char_u *save_end = mip->mi_end;
langp_T *save_lp = mip->mi_lp; langp_T *save_lp = mip->mi_lp;
int lpi;
// Check that a valid word follows. If there is one and we // Check that a valid word follows. If there is one and we
// are compounding, it will set "mi_result", thus we are // are compounding, it will set "mi_result", thus we are
@@ -1604,7 +1603,7 @@ static void find_word(matchinf_T *mip, int mode)
// For NOBREAK we need to try all NOBREAK languages, at least // For NOBREAK we need to try all NOBREAK languages, at least
// to find the ".add" file(s). // to find the ".add" file(s).
for (lpi = 0; lpi < mip->mi_win->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < mip->mi_win->w_s->b_langp.ga_len; ++lpi) {
if (slang->sl_nobreak) { if (slang->sl_nobreak) {
mip->mi_lp = LANGP_ENTRY(mip->mi_win->w_s->b_langp, lpi); mip->mi_lp = LANGP_ENTRY(mip->mi_win->w_s->b_langp, lpi);
if (mip->mi_lp->lp_slang->sl_fidxs == NULL if (mip->mi_lp->lp_slang->sl_fidxs == NULL
@@ -1702,11 +1701,10 @@ match_checkcompoundpattern (
garray_T *gap // &sl_comppat garray_T *gap // &sl_comppat
) )
{ {
int i;
char_u *p; char_u *p;
int len; int len;
for (i = 0; i + 1 < gap->ga_len; i += 2) { for (int i = 0; i + 1 < gap->ga_len; i += 2) {
p = ((char_u **)gap->ga_data)[i + 1]; p = ((char_u **)gap->ga_data)[i + 1];
if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0) { if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0) {
// Second part matches at start of following compound word, now // Second part matches at start of following compound word, now
@@ -2382,7 +2380,6 @@ static void slang_clear(slang_T *lp)
garray_T *gap; garray_T *gap;
fromto_T *ftp; fromto_T *ftp;
salitem_T *smp; salitem_T *smp;
int i;
int round; int round;
free(lp->sl_fbyts); free(lp->sl_fbyts);
@@ -2414,8 +2411,9 @@ static void slang_clear(slang_T *lp)
// "ga_len" is set to 1 without adding an item for latin1 // "ga_len" is set to 1 without adding an item for latin1
if (gap->ga_data != NULL) if (gap->ga_data != NULL)
// SOFOFROM and SOFOTO items: free lists of wide characters. // SOFOFROM and SOFOTO items: free lists of wide characters.
for (i = 0; i < gap->ga_len; ++i) for (int i = 0; i < gap->ga_len; ++i) {
free(((int **)gap->ga_data)[i]); free(((int **)gap->ga_data)[i]);
}
} else } else
// SAL items: free salitem_T items // SAL items: free salitem_T items
while (!GA_EMPTY(gap)) { while (!GA_EMPTY(gap)) {
@@ -2429,8 +2427,9 @@ static void slang_clear(slang_T *lp)
} }
ga_clear(gap); ga_clear(gap);
for (i = 0; i < lp->sl_prefixcnt; ++i) for (int i = 0; i < lp->sl_prefixcnt; ++i) {
vim_regfree(lp->sl_prefprog[i]); vim_regfree(lp->sl_prefprog[i]);
}
lp->sl_prefixcnt = 0; lp->sl_prefixcnt = 0;
free(lp->sl_prefprog); free(lp->sl_prefprog);
lp->sl_prefprog = NULL; lp->sl_prefprog = NULL;
@@ -2859,7 +2858,6 @@ static int read_rep_section(FILE *fd, garray_T *gap, short *first)
{ {
int cnt; int cnt;
fromto_T *ftp; fromto_T *ftp;
int i;
cnt = get2c(fd); // <repcount> cnt = get2c(fd); // <repcount>
if (cnt < 0) if (cnt < 0)
@@ -2869,25 +2867,27 @@ static int read_rep_section(FILE *fd, garray_T *gap, short *first)
// <rep> : <repfromlen> <repfrom> <reptolen> <repto> // <rep> : <repfromlen> <repfrom> <reptolen> <repto>
for (; gap->ga_len < cnt; ++gap->ga_len) { for (; gap->ga_len < cnt; ++gap->ga_len) {
int c;
ftp = &((fromto_T *)gap->ga_data)[gap->ga_len]; ftp = &((fromto_T *)gap->ga_data)[gap->ga_len];
ftp->ft_from = read_cnt_string(fd, 1, &i); ftp->ft_from = read_cnt_string(fd, 1, &c);
if (i < 0) if (c < 0)
return i; return c;
if (i == 0) if (c == 0)
return SP_FORMERROR; return SP_FORMERROR;
ftp->ft_to = read_cnt_string(fd, 1, &i); ftp->ft_to = read_cnt_string(fd, 1, &c);
if (i <= 0) { if (c <= 0) {
free(ftp->ft_from); free(ftp->ft_from);
if (i < 0) if (c < 0)
return i; return c;
return SP_FORMERROR; return SP_FORMERROR;
} }
} }
// Fill the first-index table. // Fill the first-index table.
for (i = 0; i < 256; ++i) for (int i = 0; i < 256; ++i) {
first[i] = -1; first[i] = -1;
for (i = 0; i < gap->ga_len; ++i) { }
for (int i = 0; i < gap->ga_len; ++i) {
ftp = &((fromto_T *)gap->ga_data)[i]; ftp = &((fromto_T *)gap->ga_data)[i];
if (first[*ftp->ft_from] == -1) if (first[*ftp->ft_from] == -1)
first[*ftp->ft_from] = i; first[*ftp->ft_from] = i;
@@ -3369,7 +3369,6 @@ static int count_syllables(slang_T *slang, char_u *word)
int skip = FALSE; int skip = FALSE;
char_u *p; char_u *p;
int len; int len;
int i;
syl_item_T *syl; syl_item_T *syl;
int c; int c;
@@ -3386,7 +3385,7 @@ static int count_syllables(slang_T *slang, char_u *word)
// Find longest match of syllable items. // Find longest match of syllable items.
len = 0; len = 0;
for (i = 0; i < slang->sl_syl_items.ga_len; ++i) { for (int i = 0; i < slang->sl_syl_items.ga_len; ++i) {
syl = ((syl_item_T *)slang->sl_syl_items.ga_data) + i; syl = ((syl_item_T *)slang->sl_syl_items.ga_data) + i;
if (syl->sy_len > len if (syl->sy_len > len
&& STRNCMP(p, syl->sy_chars, syl->sy_len) == 0) && STRNCMP(p, syl->sy_chars, syl->sy_len) == 0)
@@ -3488,16 +3487,16 @@ static int set_sofo(slang_T *lp, char_u *from, char_u *to)
static void set_sal_first(slang_T *lp) static void set_sal_first(slang_T *lp)
{ {
salfirst_T *sfirst; salfirst_T *sfirst;
int i;
salitem_T *smp; salitem_T *smp;
int c; int c;
garray_T *gap = &lp->sl_sal; garray_T *gap = &lp->sl_sal;
sfirst = lp->sl_sal_first; sfirst = lp->sl_sal_first;
for (i = 0; i < 256; ++i) for (int i = 0; i < 256; ++i) {
sfirst[i] = -1; sfirst[i] = -1;
}
smp = (salitem_T *)gap->ga_data; smp = (salitem_T *)gap->ga_data;
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
if (has_mbyte) if (has_mbyte)
// Use the lowest byte of the first character. For latin1 it's // Use the lowest byte of the first character. For latin1 it's
// the character, for other encodings it should differ for most // the character, for other encodings it should differ for most
@@ -3719,7 +3718,6 @@ char_u *did_set_spelllang(win_T *wp)
char_u *use_region = NULL; char_u *use_region = NULL;
int dont_use_region = FALSE; int dont_use_region = FALSE;
int nobreak = FALSE; int nobreak = FALSE;
int i, j;
langp_T *lp, *lp2; langp_T *lp, *lp2;
static int recursive = FALSE; static int recursive = FALSE;
char_u *ret_msg = NULL; char_u *ret_msg = NULL;
@@ -3928,7 +3926,7 @@ char_u *did_set_spelllang(win_T *wp)
// For each language figure out what language to use for sound folding and // For each language figure out what language to use for sound folding and
// REP items. If the language doesn't support it itself use another one // REP items. If the language doesn't support it itself use another one
// with the same name. E.g. for "en-math" use "en". // with the same name. E.g. for "en-math" use "en".
for (i = 0; i < ga.ga_len; ++i) { for (int i = 0; i < ga.ga_len; ++i) {
lp = LANGP_ENTRY(ga, i); lp = LANGP_ENTRY(ga, i);
// sound folding // sound folding
@@ -3937,7 +3935,7 @@ char_u *did_set_spelllang(win_T *wp)
lp->lp_sallang = lp->lp_slang; lp->lp_sallang = lp->lp_slang;
else else
// find first similar language that does sound folding // find first similar language that does sound folding
for (j = 0; j < ga.ga_len; ++j) { for (int j = 0; j < ga.ga_len; ++j) {
lp2 = LANGP_ENTRY(ga, j); lp2 = LANGP_ENTRY(ga, j);
if (!GA_EMPTY(&lp2->lp_slang->sl_sal) if (!GA_EMPTY(&lp2->lp_slang->sl_sal)
&& STRNCMP(lp->lp_slang->sl_name, && STRNCMP(lp->lp_slang->sl_name,
@@ -3953,7 +3951,7 @@ char_u *did_set_spelllang(win_T *wp)
lp->lp_replang = lp->lp_slang; lp->lp_replang = lp->lp_slang;
else else
// find first similar language that has REP items // find first similar language that has REP items
for (j = 0; j < ga.ga_len; ++j) { for (int j = 0; j < ga.ga_len; ++j) {
lp2 = LANGP_ENTRY(ga, j); lp2 = LANGP_ENTRY(ga, j);
if (!GA_EMPTY(&lp2->lp_slang->sl_rep) if (!GA_EMPTY(&lp2->lp_slang->sl_rep)
&& STRNCMP(lp->lp_slang->sl_name, && STRNCMP(lp->lp_slang->sl_name,
@@ -6760,7 +6758,7 @@ static int write_vim_spell(spellinfo_T *spin, char_u *fname)
// Compute the length of what follows. // Compute the length of what follows.
l = 2; // count <repcount> or <salcount> l = 2; // count <repcount> or <salcount>
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
ftp = &((fromto_T *)gap->ga_data)[i]; ftp = &((fromto_T *)gap->ga_data)[i];
l += 1 + (int)STRLEN(ftp->ft_from); // count <*fromlen> and <*from> l += 1 + (int)STRLEN(ftp->ft_from); // count <*fromlen> and <*from>
l += 1 + (int)STRLEN(ftp->ft_to); // count <*tolen> and <*to> l += 1 + (int)STRLEN(ftp->ft_to); // count <*tolen> and <*to>
@@ -6781,7 +6779,7 @@ static int write_vim_spell(spellinfo_T *spin, char_u *fname)
} }
put_bytes(fd, (long_u)gap->ga_len, 2); // <repcount> or <salcount> put_bytes(fd, (long_u)gap->ga_len, 2); // <repcount> or <salcount>
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
// <rep> : <repfromlen> <repfrom> <reptolen> <repto> // <rep> : <repfromlen> <repfrom> <reptolen> <repto>
// <sal> : <salfromlen> <salfrom> <saltolen> <salto> // <sal> : <salfromlen> <salfrom> <saltolen> <salto>
ftp = &((fromto_T *)gap->ga_data)[i]; ftp = &((fromto_T *)gap->ga_data)[i];
@@ -6886,8 +6884,9 @@ static int write_vim_spell(spellinfo_T *spin, char_u *fname)
putc(0, fd); // <sectionflags> putc(0, fd); // <sectionflags>
l = (int)STRLEN(spin->si_compflags); l = (int)STRLEN(spin->si_compflags);
for (i = 0; i < spin->si_comppat.ga_len; ++i) for (int i = 0; i < spin->si_comppat.ga_len; ++i) {
l += (int)STRLEN(((char_u **)(spin->si_comppat.ga_data))[i]) + 1; l += (int)STRLEN(((char_u **)(spin->si_comppat.ga_data))[i]) + 1;
}
put_bytes(fd, (long_u)(l + 7), 4); // <sectionlen> put_bytes(fd, (long_u)(l + 7), 4); // <sectionlen>
putc(spin->si_compmax, fd); // <compmax> putc(spin->si_compmax, fd); // <compmax>
@@ -6897,7 +6896,7 @@ static int write_vim_spell(spellinfo_T *spin, char_u *fname)
putc(spin->si_compoptions, fd); // <compoptions> putc(spin->si_compoptions, fd); // <compoptions>
put_bytes(fd, (long_u)spin->si_comppat.ga_len, 2); put_bytes(fd, (long_u)spin->si_comppat.ga_len, 2);
// <comppatcount> // <comppatcount>
for (i = 0; i < spin->si_comppat.ga_len; ++i) { for (int i = 0; i < spin->si_comppat.ga_len; ++i) {
p = ((char_u **)(spin->si_comppat.ga_data))[i]; p = ((char_u **)(spin->si_comppat.ga_data))[i];
putc((int)STRLEN(p), fd); // <comppatlen> putc((int)STRLEN(p), fd); // <comppatlen>
fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd); fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);
@@ -8296,7 +8295,6 @@ static int spell_iswordp_w(int *p, win_T *wp)
// When "fd" is NULL only count the length of what is written. // When "fd" is NULL only count the length of what is written.
static int write_spell_prefcond(FILE *fd, garray_T *gap) static int write_spell_prefcond(FILE *fd, garray_T *gap)
{ {
int i;
char_u *p; char_u *p;
int len; int len;
int totlen; int totlen;
@@ -8307,7 +8305,7 @@ static int write_spell_prefcond(FILE *fd, garray_T *gap)
totlen = 2 + gap->ga_len; // length of <prefcondcnt> and <condlen> bytes totlen = 2 + gap->ga_len; // length of <prefcondcnt> and <condlen> bytes
for (i = 0; i < gap->ga_len; ++i) { for (int i = 0; i < gap->ga_len; ++i) {
// <prefcond> : <condlen> <condstr> // <prefcond> : <condlen> <condstr>
p = ((char_u **)gap->ga_data)[i]; p = ((char_u **)gap->ga_data)[i];
if (p != NULL) { if (p != NULL) {
@@ -8426,7 +8424,6 @@ void spell_suggest(int count)
pos_T prev_cursor = curwin->w_cursor; pos_T prev_cursor = curwin->w_cursor;
char_u wcopy[MAXWLEN + 2]; char_u wcopy[MAXWLEN + 2];
char_u *p; char_u *p;
int i;
int c; int c;
suginfo_T sug; suginfo_T sug;
suggest_T *stp; suggest_T *stp;
@@ -8528,7 +8525,7 @@ void spell_suggest(int count)
msg_putchar('\n'); msg_putchar('\n');
msg_scroll = TRUE; msg_scroll = TRUE;
for (i = 0; i < sug.su_ga.ga_len; ++i) { for (int i = 0; i < sug.su_ga.ga_len; ++i) {
stp = &SUG(sug.su_ga, i); stp = &SUG(sug.su_ga, i);
// The suggested word may replace only part of the bad word, add // The suggested word may replace only part of the bad word, add
@@ -8753,7 +8750,6 @@ spell_suggest_list (
) )
{ {
suginfo_T sug; suginfo_T sug;
int i;
suggest_T *stp; suggest_T *stp;
char_u *wcopy; char_u *wcopy;
@@ -8762,7 +8758,7 @@ spell_suggest_list (
// Make room in "gap". // Make room in "gap".
ga_init(gap, sizeof(char_u *), sug.su_ga.ga_len + 1); ga_init(gap, sizeof(char_u *), sug.su_ga.ga_len + 1);
ga_grow(gap, sug.su_ga.ga_len); ga_grow(gap, sug.su_ga.ga_len);
for (i = 0; i < sug.su_ga.ga_len; ++i) { for (int i = 0; i < sug.su_ga.ga_len; ++i) {
stp = &SUG(sug.su_ga, i); stp = &SUG(sug.su_ga, i);
// The suggested word may replace only part of "word", add the not // The suggested word may replace only part of "word", add the not
@@ -8800,7 +8796,6 @@ spell_find_suggest (
char_u *sps_copy; char_u *sps_copy;
static int expr_busy = FALSE; static int expr_busy = FALSE;
int c; int c;
int i;
langp_T *lp; langp_T *lp;
// Set the info in "*su". // Set the info in "*su".
@@ -8834,7 +8829,7 @@ spell_find_suggest (
// one in 'spelllang' that supports sound folding. That's good for when // one in 'spelllang' that supports sound folding. That's good for when
// using multiple files for one language, it's not that bad when mixing // using multiple files for one language, it's not that bad when mixing
// languages (e.g., "pl,en"). // languages (e.g., "pl,en").
for (i = 0; i < curbuf->b_s.b_langp.ga_len; ++i) { for (int i = 0; i < curbuf->b_s.b_langp.ga_len; ++i) {
lp = LANGP_ENTRY(curbuf->b_s.b_langp, i); lp = LANGP_ENTRY(curbuf->b_s.b_langp, i);
if (lp->lp_sallang != NULL) { if (lp->lp_sallang != NULL) {
su->su_sallang = lp->lp_sallang; su->su_sallang = lp->lp_sallang;
@@ -9053,7 +9048,6 @@ static void spell_suggest_intern(suginfo_T *su, int interactive)
static void suggest_load_files(void) static void suggest_load_files(void)
{ {
langp_T *lp; langp_T *lp;
int lpi;
slang_T *slang; slang_T *slang;
char_u *dotp; char_u *dotp;
FILE *fd; FILE *fd;
@@ -9066,7 +9060,7 @@ static void suggest_load_files(void)
int c; int c;
// Do this for all languages that support sound folding. // Do this for all languages that support sound folding.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
slang = lp->lp_slang; slang = lp->lp_slang;
if (slang->sl_sugtime != 0 && !slang->sl_sugloaded) { if (slang->sl_sugtime != 0 && !slang->sl_sugloaded) {
@@ -9222,14 +9216,14 @@ static void tree_count_words(char_u *byts, idx_T *idxs)
// Free the info put in "*su" by spell_find_suggest(). // Free the info put in "*su" by spell_find_suggest().
static void spell_find_cleanup(suginfo_T *su) static void spell_find_cleanup(suginfo_T *su)
{ {
int i;
// Free the suggestions. // Free the suggestions.
for (i = 0; i < su->su_ga.ga_len; ++i) for (int i = 0; i < su->su_ga.ga_len; ++i) {
free(SUG(su->su_ga, i).st_word); free(SUG(su->su_ga, i).st_word);
}
ga_clear(&su->su_ga); ga_clear(&su->su_ga);
for (i = 0; i < su->su_sga.ga_len; ++i) for (int i = 0; i < su->su_sga.ga_len; ++i) {
free(SUG(su->su_sga, i).st_word); free(SUG(su->su_sga, i).st_word);
}
ga_clear(&su->su_sga); ga_clear(&su->su_sga);
// Free the banned words. // Free the banned words.
@@ -9339,7 +9333,6 @@ static void suggest_try_change(suginfo_T *su)
char_u fword[MAXWLEN]; // copy of the bad word, case-folded char_u fword[MAXWLEN]; // copy of the bad word, case-folded
int n; int n;
char_u *p; char_u *p;
int lpi;
langp_T *lp; langp_T *lp;
// We make a copy of the case-folded bad word, so that we can modify it // We make a copy of the case-folded bad word, so that we can modify it
@@ -9350,7 +9343,7 @@ static void suggest_try_change(suginfo_T *su)
p = su->su_badptr + su->su_badlen; p = su->su_badptr + su->su_badlen;
(void)spell_casefold(p, (int)STRLEN(p), fword + n, MAXWLEN - n); (void)spell_casefold(p, (int)STRLEN(p), fword + n, MAXWLEN - n);
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
// If reloading a spell file fails it's still in the list but // If reloading a spell file fails it's still in the list but
@@ -10802,12 +10795,11 @@ static void score_comp_sal(suginfo_T *su)
suggest_T *stp; suggest_T *stp;
suggest_T *sstp; suggest_T *sstp;
int score; int score;
int lpi;
ga_grow(&su->su_sga, su->su_ga.ga_len); ga_grow(&su->su_sga, su->su_ga.ga_len);
// Use the sound-folding of the first language that supports it. // Use the sound-folding of the first language that supports it.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
if (!GA_EMPTY(&lp->lp_slang->sl_sal)) { if (!GA_EMPTY(&lp->lp_slang->sl_sal)) {
// soundfold the bad word // soundfold the bad word
@@ -10839,8 +10831,6 @@ static void score_comp_sal(suginfo_T *su)
// They are entwined. // They are entwined.
static void score_combine(suginfo_T *su) static void score_combine(suginfo_T *su)
{ {
int i;
int j;
garray_T ga; garray_T ga;
garray_T *gap; garray_T *gap;
langp_T *lp; langp_T *lp;
@@ -10848,18 +10838,17 @@ static void score_combine(suginfo_T *su)
char_u *p; char_u *p;
char_u badsound[MAXWLEN]; char_u badsound[MAXWLEN];
int round; int round;
int lpi;
slang_T *slang = NULL; slang_T *slang = NULL;
// Add the alternate score to su_ga. // Add the alternate score to su_ga.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
if (!GA_EMPTY(&lp->lp_slang->sl_sal)) { if (!GA_EMPTY(&lp->lp_slang->sl_sal)) {
// soundfold the bad word // soundfold the bad word
slang = lp->lp_slang; slang = lp->lp_slang;
spell_soundfold(slang, su->su_fbadword, TRUE, badsound); spell_soundfold(slang, su->su_fbadword, TRUE, badsound);
for (i = 0; i < su->su_ga.ga_len; ++i) { for (int i = 0; i < su->su_ga.ga_len; ++i) {
stp = &SUG(su->su_ga, i); stp = &SUG(su->su_ga, i);
stp->st_altscore = stp_sal_score(stp, su, slang, badsound); stp->st_altscore = stp_sal_score(stp, su, slang, badsound);
if (stp->st_altscore == SCORE_MAXMAX) if (stp->st_altscore == SCORE_MAXMAX)
@@ -10880,7 +10869,7 @@ static void score_combine(suginfo_T *su)
} }
// Add the alternate score to su_sga. // Add the alternate score to su_sga.
for (i = 0; i < su->su_sga.ga_len; ++i) { for (int i = 0; i < su->su_sga.ga_len; ++i) {
stp = &SUG(su->su_sga, i); stp = &SUG(su->su_sga, i);
stp->st_altscore = spell_edit_score(slang, stp->st_altscore = spell_edit_score(slang,
su->su_badword, stp->st_word); su->su_badword, stp->st_word);
@@ -10902,7 +10891,7 @@ static void score_combine(suginfo_T *su)
ga_grow(&ga, su->su_ga.ga_len + su->su_sga.ga_len); ga_grow(&ga, su->su_ga.ga_len + su->su_sga.ga_len);
stp = &SUG(ga, 0); stp = &SUG(ga, 0);
for (i = 0; i < su->su_ga.ga_len || i < su->su_sga.ga_len; ++i) { for (int i = 0; i < su->su_ga.ga_len || i < su->su_sga.ga_len; ++i) {
// round 1: get a suggestion from su_ga // round 1: get a suggestion from su_ga
// round 2: get a suggestion from su_sga // round 2: get a suggestion from su_sga
for (round = 1; round <= 2; ++round) { for (round = 1; round <= 2; ++round) {
@@ -10910,6 +10899,7 @@ static void score_combine(suginfo_T *su)
if (i < gap->ga_len) { if (i < gap->ga_len) {
// Don't add a word if it's already there. // Don't add a word if it's already there.
p = SUG(*gap, i).st_word; p = SUG(*gap, i).st_word;
int j;
for (j = 0; j < ga.ga_len; ++j) for (j = 0; j < ga.ga_len; ++j)
if (STRCMP(stp[j].st_word, p) == 0) if (STRCMP(stp[j].st_word, p) == 0)
break; break;
@@ -10926,8 +10916,9 @@ static void score_combine(suginfo_T *su)
// Truncate the list to the number of suggestions that will be displayed. // Truncate the list to the number of suggestions that will be displayed.
if (ga.ga_len > su->su_maxcount) { if (ga.ga_len > su->su_maxcount) {
for (i = su->su_maxcount; i < ga.ga_len; ++i) for (int i = su->su_maxcount; i < ga.ga_len; ++i) {
free(stp[i].st_word); free(stp[i].st_word);
}
ga.ga_len = su->su_maxcount; ga.ga_len = su->su_maxcount;
} }
@@ -10997,12 +10988,11 @@ static sftword_T dumsft;
static void suggest_try_soundalike_prep(void) static void suggest_try_soundalike_prep(void)
{ {
langp_T *lp; langp_T *lp;
int lpi;
slang_T *slang; slang_T *slang;
// Do this for all languages that support sound folding and for which a // Do this for all languages that support sound folding and for which a
// .sug file has been loaded. // .sug file has been loaded.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
slang = lp->lp_slang; slang = lp->lp_slang;
if (!GA_EMPTY(&slang->sl_sal) && slang->sl_sbyts != NULL) if (!GA_EMPTY(&slang->sl_sal) && slang->sl_sbyts != NULL)
@@ -11017,12 +11007,11 @@ static void suggest_try_soundalike(suginfo_T *su)
{ {
char_u salword[MAXWLEN]; char_u salword[MAXWLEN];
langp_T *lp; langp_T *lp;
int lpi;
slang_T *slang; slang_T *slang;
// Do this for all languages that support sound folding and for which a // Do this for all languages that support sound folding and for which a
// .sug file has been loaded. // .sug file has been loaded.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
slang = lp->lp_slang; slang = lp->lp_slang;
if (!GA_EMPTY(&slang->sl_sal) && slang->sl_sbyts != NULL) { if (!GA_EMPTY(&slang->sl_sal) && slang->sl_sbyts != NULL) {
@@ -11041,14 +11030,13 @@ static void suggest_try_soundalike(suginfo_T *su)
static void suggest_try_soundalike_finish(void) static void suggest_try_soundalike_finish(void)
{ {
langp_T *lp; langp_T *lp;
int lpi;
slang_T *slang; slang_T *slang;
int todo; int todo;
hashitem_T *hi; hashitem_T *hi;
// Do this for all languages that support sound folding and for which a // Do this for all languages that support sound folding and for which a
// .sug file has been loaded. // .sug file has been loaded.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
slang = lp->lp_slang; slang = lp->lp_slang;
if (!GA_EMPTY(&slang->sl_sal) && slang->sl_sbyts != NULL) { if (!GA_EMPTY(&slang->sl_sal) && slang->sl_sbyts != NULL) {
@@ -11475,7 +11463,7 @@ add_suggestion (
// being replaced "thes," -> "these" is a different suggestion from // being replaced "thes," -> "these" is a different suggestion from
// "thes" -> "these". // "thes" -> "these".
stp = &SUG(*gap, 0); stp = &SUG(*gap, 0);
for (i = gap->ga_len; --i >= 0; ++stp) for (i = gap->ga_len; --i >= 0; ++stp) {
if (stp->st_wordlen == goodlen if (stp->st_wordlen == goodlen
&& stp->st_orglen == badlen && stp->st_orglen == badlen
&& STRNCMP(stp->st_word, goodword, goodlen) == 0) { && STRNCMP(stp->st_word, goodword, goodlen) == 0) {
@@ -11512,6 +11500,7 @@ add_suggestion (
} }
break; break;
} }
}
} }
if (i < 0) { if (i < 0) {
@@ -11549,13 +11538,12 @@ check_suggestions (
) )
{ {
suggest_T *stp; suggest_T *stp;
int i;
char_u longword[MAXWLEN + 1]; char_u longword[MAXWLEN + 1];
int len; int len;
hlf_T attr; hlf_T attr;
stp = &SUG(*gap, 0); stp = &SUG(*gap, 0);
for (i = gap->ga_len - 1; i >= 0; --i) { for (int i = gap->ga_len - 1; i >= 0; --i) {
// Need to append what follows to check for "the the". // Need to append what follows to check for "the the".
vim_strncpy(longword, stp[i].st_word, MAXWLEN); vim_strncpy(longword, stp[i].st_word, MAXWLEN);
len = stp[i].st_wordlen; len = stp[i].st_wordlen;
@@ -11594,11 +11582,11 @@ static void add_banned(suginfo_T *su, char_u *word)
// is slow, thus only done for the final results. // is slow, thus only done for the final results.
static void rescore_suggestions(suginfo_T *su) static void rescore_suggestions(suginfo_T *su)
{ {
int i; if (su->su_sallang != NULL) {
for (int i = 0; i < su->su_ga.ga_len; ++i) {
if (su->su_sallang != NULL)
for (i = 0; i < su->su_ga.ga_len; ++i)
rescore_one(su, &SUG(su->su_ga, i)); rescore_one(su, &SUG(su->su_ga, i));
}
}
} }
// Recompute the score for one suggestion if sound-folding is possible. // Recompute the score for one suggestion if sound-folding is possible.
@@ -11655,15 +11643,15 @@ cleanup_suggestions (
) )
{ {
suggest_T *stp = &SUG(*gap, 0); suggest_T *stp = &SUG(*gap, 0);
int i;
// Sort the list. // Sort the list.
qsort(gap->ga_data, (size_t)gap->ga_len, sizeof(suggest_T), sug_compare); qsort(gap->ga_data, (size_t)gap->ga_len, sizeof(suggest_T), sug_compare);
// Truncate the list to the number of suggestions that will be displayed. // Truncate the list to the number of suggestions that will be displayed.
if (gap->ga_len > keep) { if (gap->ga_len > keep) {
for (i = keep; i < gap->ga_len; ++i) for (int i = keep; i < gap->ga_len; ++i) {
free(stp[i].st_word); free(stp[i].st_word);
}
gap->ga_len = keep; gap->ga_len = keep;
return stp[keep - 1].st_score; return stp[keep - 1].st_score;
} }
@@ -11676,11 +11664,10 @@ char_u *eval_soundfold(char_u *word)
{ {
langp_T *lp; langp_T *lp;
char_u sound[MAXWLEN]; char_u sound[MAXWLEN];
int lpi;
if (curwin->w_p_spell && *curwin->w_s->b_p_spl != NUL) if (curwin->w_p_spell && *curwin->w_s->b_p_spl != NUL) {
// Use the sound-folding of the first language that supports it. // Use the sound-folding of the first language that supports it.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
if (!GA_EMPTY(&lp->lp_slang->sl_sal)) { if (!GA_EMPTY(&lp->lp_slang->sl_sal)) {
// soundfold the word // soundfold the word
@@ -11688,6 +11675,7 @@ char_u *eval_soundfold(char_u *word)
return vim_strsave(sound); return vim_strsave(sound);
} }
} }
}
// No language with sound folding, return word as-is. // No language with sound folding, return word as-is.
return vim_strsave(word); return vim_strsave(word);
@@ -12916,7 +12904,6 @@ pop:
// ":spellinfo" // ":spellinfo"
void ex_spellinfo(exarg_T *eap) void ex_spellinfo(exarg_T *eap)
{ {
int lpi;
langp_T *lp; langp_T *lp;
char_u *p; char_u *p;
@@ -12924,7 +12911,7 @@ void ex_spellinfo(exarg_T *eap)
return; return;
msg_start(); msg_start();
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len && !got_int; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len && !got_int; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
msg_puts((char_u *)"file: "); msg_puts((char_u *)"file: ");
msg_puts(lp->lp_slang->sl_fname); msg_puts(lp->lp_slang->sl_fname);
@@ -13002,7 +12989,6 @@ spell_dump_compl (
char_u *region_names = NULL; // region names being used char_u *region_names = NULL; // region names being used
int do_region = TRUE; // dump region names and numbers int do_region = TRUE; // dump region names and numbers
char_u *p; char_u *p;
int lpi;
int dumpflags = dumpflags_arg; int dumpflags = dumpflags_arg;
int patlen; int patlen;
@@ -13024,7 +13010,7 @@ spell_dump_compl (
// Find out if we can support regions: All languages must support the same // Find out if we can support regions: All languages must support the same
// regions or none at all. // regions or none at all.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
p = lp->lp_slang->sl_regions; p = lp->lp_slang->sl_regions;
if (p[0] != 0) { if (p[0] != 0) {
@@ -13046,7 +13032,7 @@ spell_dump_compl (
do_region = FALSE; do_region = FALSE;
// Loop over all files loaded for the entries in 'spelllang'. // Loop over all files loaded for the entries in 'spelllang'.
for (lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) { for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; ++lpi) {
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
slang = lp->lp_slang; slang = lp->lp_slang;
if (slang->sl_fbyts == NULL) // reloading failed if (slang->sl_fbyts == NULL) // reloading failed

View File

@@ -541,17 +541,18 @@ void syntax_start(win_T *wp, linenr_T lnum)
*/ */
static void clear_syn_state(synstate_T *p) static void clear_syn_state(synstate_T *p)
{ {
int i;
garray_T *gap; garray_T *gap;
if (p->sst_stacksize > SST_FIX_STATES) { if (p->sst_stacksize > SST_FIX_STATES) {
gap = &(p->sst_union.sst_ga); gap = &(p->sst_union.sst_ga);
for (i = 0; i < gap->ga_len; i++) for (int i = 0; i < gap->ga_len; i++) {
unref_extmatch(SYN_STATE_P(gap)[i].bs_extmatch); unref_extmatch(SYN_STATE_P(gap)[i].bs_extmatch);
}
ga_clear(gap); ga_clear(gap);
} else { } else {
for (i = 0; i < p->sst_stacksize; i++) for (int i = 0; i < p->sst_stacksize; i++) {
unref_extmatch(p->sst_union.sst_stack[i].bs_extmatch); unref_extmatch(p->sst_union.sst_stack[i].bs_extmatch);
}
} }
} }
@@ -560,12 +561,10 @@ static void clear_syn_state(synstate_T *p)
*/ */
static void clear_current_state(void) static void clear_current_state(void)
{ {
int i; stateitem_T *sip = (stateitem_T *)(current_state.ga_data);
stateitem_T *sip; for (int i = 0; i < current_state.ga_len; i++) {
sip = (stateitem_T *)(current_state.ga_data);
for (i = 0; i < current_state.ga_len; i++)
unref_extmatch(sip[i].si_extmatch); unref_extmatch(sip[i].si_extmatch);
}
ga_clear(&current_state); ga_clear(&current_state);
} }
@@ -870,13 +869,12 @@ static void syn_start_line(void)
static void syn_update_ends(int startofline) static void syn_update_ends(int startofline)
{ {
stateitem_T *cur_si; stateitem_T *cur_si;
int i;
int seen_keepend; int seen_keepend;
if (startofline) { if (startofline) {
/* Check for a match carried over from a previous line with a /* Check for a match carried over from a previous line with a
* contained region. The match ends as soon as the region ends. */ * contained region. The match ends as soon as the region ends. */
for (i = 0; i < current_state.ga_len; ++i) { for (int i = 0; i < current_state.ga_len; ++i) {
cur_si = &CUR_STATE(i); cur_si = &CUR_STATE(i);
if (cur_si->si_idx >= 0 if (cur_si->si_idx >= 0
&& (SYN_ITEMS(syn_block)[cur_si->si_idx]).sp_type && (SYN_ITEMS(syn_block)[cur_si->si_idx]).sp_type
@@ -900,7 +898,7 @@ static void syn_update_ends(int startofline)
* these "keepend" regions as well as contained normal regions. * these "keepend" regions as well as contained normal regions.
* Then check for items ending in column 0. * Then check for items ending in column 0.
*/ */
i = current_state.ga_len - 1; int i = current_state.ga_len - 1;
if (keepend_level >= 0) if (keepend_level >= 0)
for (; i > keepend_level; --i) for (; i > keepend_level; --i)
if (CUR_STATE(i).si_flags & HL_EXTEND) if (CUR_STATE(i).si_flags & HL_EXTEND)
@@ -1362,7 +1360,6 @@ static void load_current_state(synstate_T *from)
*/ */
static int syn_stack_equal(synstate_T *sp) static int syn_stack_equal(synstate_T *sp)
{ {
int i, j;
bufstate_T *bp; bufstate_T *bp;
reg_extmatch_T *six, *bsx; reg_extmatch_T *six, *bsx;
@@ -1375,6 +1372,7 @@ static int syn_stack_equal(synstate_T *sp)
else else
bp = sp->sst_union.sst_stack; bp = sp->sst_union.sst_stack;
int i;
for (i = current_state.ga_len; --i >= 0; ) { for (i = current_state.ga_len; --i >= 0; ) {
/* If the item has another index the state is different. */ /* If the item has another index the state is different. */
if (bp[i].bs_idx != CUR_STATE(i).si_idx) if (bp[i].bs_idx != CUR_STATE(i).si_idx)
@@ -1389,6 +1387,7 @@ static int syn_stack_equal(synstate_T *sp)
* different. */ * different. */
if (bsx == NULL || six == NULL) if (bsx == NULL || six == NULL)
break; break;
int j;
for (j = 0; j < NSUBEXP; ++j) { for (j = 0; j < NSUBEXP; ++j) {
/* Check each referenced match string. They must all be /* Check each referenced match string. They must all be
* equal. */ * equal. */
@@ -1617,7 +1616,6 @@ syn_current_attr (
lpos_T eos_pos; /* end-of-start match (start region) */ lpos_T eos_pos; /* end-of-start match (start region) */
lpos_T eoe_pos; /* end-of-end pattern */ lpos_T eoe_pos; /* end-of-end pattern */
int end_idx; /* group ID for end pattern */ int end_idx; /* group ID for end pattern */
int idx;
synpat_T *spp; synpat_T *spp;
stateitem_T *cur_si, *sip = NULL; stateitem_T *cur_si, *sip = NULL;
int startcol; int startcol;
@@ -1782,7 +1780,7 @@ syn_current_attr (
*/ */
next_match_idx = 0; /* no match in this line yet */ next_match_idx = 0; /* no match in this line yet */
next_match_col = MAXCOL; next_match_col = MAXCOL;
for (idx = syn_block->b_syn_patterns.ga_len; --idx >= 0; ) { for (int idx = syn_block->b_syn_patterns.ga_len; --idx >= 0; ) {
spp = &(SYN_ITEMS(syn_block)[idx]); spp = &(SYN_ITEMS(syn_block)[idx]);
if ( spp->sp_syncing == syncing if ( spp->sp_syncing == syncing
&& (displaying || !(spp->sp_flags & HL_DISPLAY)) && (displaying || !(spp->sp_flags & HL_DISPLAY))
@@ -2018,7 +2016,7 @@ syn_current_attr (
current_trans_id = 0; current_trans_id = 0;
current_flags = 0; current_flags = 0;
if (cur_si != NULL) { if (cur_si != NULL) {
for (idx = current_state.ga_len - 1; idx >= 0; --idx) { for (int idx = current_state.ga_len - 1; idx >= 0; --idx) {
sip = &CUR_STATE(idx); sip = &CUR_STATE(idx);
if ((current_lnum > sip->si_h_startpos.lnum if ((current_lnum > sip->si_h_startpos.lnum
|| (current_lnum == sip->si_h_startpos.lnum || (current_lnum == sip->si_h_startpos.lnum
@@ -2126,19 +2124,21 @@ syn_current_attr (
*/ */
static int did_match_already(int idx, garray_T *gap) static int did_match_already(int idx, garray_T *gap)
{ {
int i; for (int i = current_state.ga_len; --i >= 0; ) {
for (i = current_state.ga_len; --i >= 0; )
if (CUR_STATE(i).si_m_startcol == (int)current_col if (CUR_STATE(i).si_m_startcol == (int)current_col
&& CUR_STATE(i).si_m_lnum == (int)current_lnum && CUR_STATE(i).si_m_lnum == (int)current_lnum
&& CUR_STATE(i).si_idx == idx) && CUR_STATE(i).si_idx == idx) {
return TRUE; return TRUE;
}
}
/* Zero-width matches with a nextgroup argument are not put on the syntax /* Zero-width matches with a nextgroup argument are not put on the syntax
* stack, and can only be matched once anyway. */ * stack, and can only be matched once anyway. */
for (i = gap->ga_len; --i >= 0; ) for (int i = gap->ga_len; --i >= 0; ) {
if (((int *)(gap->ga_data))[i] == idx) if (((int *)(gap->ga_data))[i] == idx) {
return TRUE; return TRUE;
}
}
return FALSE; return FALSE;
} }
@@ -3034,8 +3034,6 @@ static void syn_cmd_spell(exarg_T *eap, int syncing)
*/ */
void syntax_clear(synblock_T *block) void syntax_clear(synblock_T *block)
{ {
int i;
block->b_syn_error = FALSE; /* clear previous error */ block->b_syn_error = FALSE; /* clear previous error */
block->b_syn_ic = FALSE; /* Use case, by default */ block->b_syn_ic = FALSE; /* Use case, by default */
block->b_syn_spell = SYNSPL_DEFAULT; /* default spell checking */ block->b_syn_spell = SYNSPL_DEFAULT; /* default spell checking */
@@ -3046,13 +3044,15 @@ void syntax_clear(synblock_T *block)
clear_keywtab(&block->b_keywtab_ic); clear_keywtab(&block->b_keywtab_ic);
/* free the syntax patterns */ /* free the syntax patterns */
for (i = block->b_syn_patterns.ga_len; --i >= 0; ) for (int i = block->b_syn_patterns.ga_len; --i >= 0; ) {
syn_clear_pattern(block, i); syn_clear_pattern(block, i);
}
ga_clear(&block->b_syn_patterns); ga_clear(&block->b_syn_patterns);
/* free the syntax clusters */ /* free the syntax clusters */
for (i = block->b_syn_clusters.ga_len; --i >= 0; ) for (int i = block->b_syn_clusters.ga_len; --i >= 0; ) {
syn_clear_cluster(block, i); syn_clear_cluster(block, i);
}
ga_clear(&block->b_syn_clusters); ga_clear(&block->b_syn_clusters);
block->b_spell_cluster_id = 0; block->b_spell_cluster_id = 0;
block->b_nospell_cluster_id = 0; block->b_nospell_cluster_id = 0;
@@ -3093,12 +3093,12 @@ void reset_synblock(win_T *wp)
*/ */
static void syntax_sync_clear(void) static void syntax_sync_clear(void)
{ {
int i;
/* free the syntax patterns */ /* free the syntax patterns */
for (i = curwin->w_s->b_syn_patterns.ga_len; --i >= 0; ) for (int i = curwin->w_s->b_syn_patterns.ga_len; --i >= 0; ) {
if (SYN_ITEMS(curwin->w_s)[i].sp_syncing) if (SYN_ITEMS(curwin->w_s)[i].sp_syncing) {
syn_remove_pattern(curwin->w_s, i); syn_remove_pattern(curwin->w_s, i);
}
}
curwin->w_s->b_syn_sync_flags = 0; curwin->w_s->b_syn_sync_flags = 0;
curwin->w_s->b_syn_sync_minlines = 0; curwin->w_s->b_syn_sync_minlines = 0;
@@ -3232,7 +3232,6 @@ static void syn_cmd_clear(exarg_T *eap, int syncing)
static void syn_clear_one(int id, int syncing) static void syn_clear_one(int id, int syncing)
{ {
synpat_T *spp; synpat_T *spp;
int idx;
/* Clear keywords only when not ":syn sync clear group-name" */ /* Clear keywords only when not ":syn sync clear group-name" */
if (!syncing) { if (!syncing) {
@@ -3241,7 +3240,7 @@ static void syn_clear_one(int id, int syncing)
} }
/* clear the patterns for "id" */ /* clear the patterns for "id" */
for (idx = curwin->w_s->b_syn_patterns.ga_len; --idx >= 0; ) { for (int idx = curwin->w_s->b_syn_patterns.ga_len; --idx >= 0; ) {
spp = &(SYN_ITEMS(curwin->w_s)[idx]); spp = &(SYN_ITEMS(curwin->w_s)[idx]);
if (spp->sp_syn.id != id || spp->sp_syncing != syncing) if (spp->sp_syn.id != id || spp->sp_syncing != syncing)
continue; continue;
@@ -3318,7 +3317,6 @@ syn_cmd_list (
) )
{ {
char_u *arg = eap->arg; char_u *arg = eap->arg;
int id;
char_u *arg_end; char_u *arg_end;
eap->nextcmd = find_nextcmd(arg); eap->nextcmd = find_nextcmd(arg);
@@ -3361,10 +3359,12 @@ syn_cmd_list (
/* /*
* No argument: List all group IDs and all syntax clusters. * No argument: List all group IDs and all syntax clusters.
*/ */
for (id = 1; id <= highlight_ga.ga_len && !got_int; ++id) for (int id = 1; id <= highlight_ga.ga_len && !got_int; ++id) {
syn_list_one(id, syncing, FALSE); syn_list_one(id, syncing, FALSE);
for (id = 0; id < curwin->w_s->b_syn_clusters.ga_len && !got_int; ++id) }
for (int id = 0; id < curwin->w_s->b_syn_clusters.ga_len && !got_int; ++id) {
syn_list_cluster(id); syn_list_cluster(id);
}
} else { } else {
/* /*
* List the group IDs and syntax clusters that are in the argument. * List the group IDs and syntax clusters that are in the argument.
@@ -3372,13 +3372,13 @@ syn_cmd_list (
while (!ends_excmd(*arg) && !got_int) { while (!ends_excmd(*arg) && !got_int) {
arg_end = skiptowhite(arg); arg_end = skiptowhite(arg);
if (*arg == '@') { if (*arg == '@') {
id = syn_scl_namen2id(arg + 1, (int)(arg_end - arg - 1)); int id = syn_scl_namen2id(arg + 1, (int)(arg_end - arg - 1));
if (id == 0) if (id == 0)
EMSG2(_("E392: No such syntax cluster: %s"), arg); EMSG2(_("E392: No such syntax cluster: %s"), arg);
else else
syn_list_cluster(id - SYNID_CLUSTER); syn_list_cluster(id - SYNID_CLUSTER);
} else { } else {
id = syn_namen2id(arg, (int)(arg_end - arg)); int id = syn_namen2id(arg, (int)(arg_end - arg));
if (id == 0) if (id == 0)
EMSG2(_(e_nogroup), arg); EMSG2(_(e_nogroup), arg);
else else
@@ -3432,7 +3432,6 @@ syn_list_one (
) )
{ {
int attr; int attr;
int idx;
int did_header = FALSE; int did_header = FALSE;
synpat_T *spp; synpat_T *spp;
static struct name_list namelist1[] = static struct name_list namelist1[] =
@@ -3467,7 +3466,7 @@ syn_list_one (
} }
/* list the patterns for "id" */ /* list the patterns for "id" */
for (idx = 0; idx < curwin->w_s->b_syn_patterns.ga_len && !got_int; ++idx) { for (int idx = 0; idx < curwin->w_s->b_syn_patterns.ga_len && !got_int; ++idx) {
spp = &(SYN_ITEMS(curwin->w_s)[idx]); spp = &(SYN_ITEMS(curwin->w_s)[idx]);
if (spp->sp_syn.id != id || spp->sp_syncing != syncing) if (spp->sp_syn.id != id || spp->sp_syncing != syncing)
continue; continue;
@@ -3904,7 +3903,6 @@ get_syn_options (
int syn_id; int syn_id;
int len; int len;
char *p; char *p;
int i;
int fidx; int fidx;
static struct flag { static struct flag {
char *name; char *name;
@@ -3948,6 +3946,7 @@ get_syn_options (
for (fidx = sizeof(flagtab) / sizeof(struct flag); --fidx >= 0; ) { for (fidx = sizeof(flagtab) / sizeof(struct flag); --fidx >= 0; ) {
p = flagtab[fidx].name; p = flagtab[fidx].name;
int i;
for (i = 0, len = 0; p[i] != NUL; i += 2, ++len) for (i = 0, len = 0; p[i] != NUL; i += 2, ++len)
if (arg[len] != p[i] && arg[len] != p[i + 1]) if (arg[len] != p[i] && arg[len] != p[i + 1])
break; break;
@@ -4012,6 +4011,7 @@ get_syn_options (
*opt->sync_idx = NONE_IDX; *opt->sync_idx = NONE_IDX;
else { else {
syn_id = syn_name2id(gname); syn_id = syn_name2id(gname);
int i;
for (i = curwin->w_s->b_syn_patterns.ga_len; --i >= 0; ) for (i = curwin->w_s->b_syn_patterns.ga_len; --i >= 0; )
if (SYN_ITEMS(curwin->w_s)[i].sp_syn.id == syn_id if (SYN_ITEMS(curwin->w_s)[i].sp_syn.id == syn_id
&& SYN_ITEMS(curwin->w_s)[i].sp_type == SPTYPE_START) { && SYN_ITEMS(curwin->w_s)[i].sp_type == SPTYPE_START) {
@@ -4247,7 +4247,6 @@ syn_cmd_match (
char_u *rest; char_u *rest;
synpat_T item; /* the item found in the line */ synpat_T item; /* the item found in the line */
int syn_id; int syn_id;
int idx;
syn_opt_arg_T syn_opt_arg; syn_opt_arg_T syn_opt_arg;
int sync_idx = 0; int sync_idx = 0;
int conceal_char = NUL; int conceal_char = NUL;
@@ -4289,7 +4288,7 @@ syn_cmd_match (
/* /*
* Store the pattern in the syn_items list * Store the pattern in the syn_items list
*/ */
idx = curwin->w_s->b_syn_patterns.ga_len; int idx = curwin->w_s->b_syn_patterns.ga_len;
SYN_ITEMS(curwin->w_s)[idx] = item; SYN_ITEMS(curwin->w_s)[idx] = item;
SYN_ITEMS(curwin->w_s)[idx].sp_syncing = syncing; SYN_ITEMS(curwin->w_s)[idx].sp_syncing = syncing;
SYN_ITEMS(curwin->w_s)[idx].sp_type = SPTYPE_MATCH; SYN_ITEMS(curwin->w_s)[idx].sp_type = SPTYPE_MATCH;
@@ -4367,7 +4366,6 @@ syn_cmd_region (
int not_enough = FALSE; /* not enough arguments */ int not_enough = FALSE; /* not enough arguments */
int illegal = FALSE; /* illegal arguments */ int illegal = FALSE; /* illegal arguments */
int success = FALSE; int success = FALSE;
int idx;
syn_opt_arg_T syn_opt_arg; syn_opt_arg_T syn_opt_arg;
int conceal_char = NUL; int conceal_char = NUL;
@@ -4501,7 +4499,7 @@ syn_cmd_region (
/* /*
* Store the start/skip/end in the syn_items list * Store the start/skip/end in the syn_items list
*/ */
idx = curwin->w_s->b_syn_patterns.ga_len; int idx = curwin->w_s->b_syn_patterns.ga_len;
for (item = ITEM_START; item <= ITEM_END; ++item) { for (item = ITEM_START; item <= ITEM_END; ++item) {
for (ppp = pat_ptrs[item]; ppp != NULL; ppp = ppp->pp_next) { for (ppp = pat_ptrs[item]; ppp != NULL; ppp = ppp->pp_next) {
SYN_ITEMS(curwin->w_s)[idx] = *(ppp->pp_synp); SYN_ITEMS(curwin->w_s)[idx] = *(ppp->pp_synp);
@@ -4696,17 +4694,19 @@ static void syn_combine_list(short **clstr1, short **clstr2, int list_op)
*/ */
static int syn_scl_name2id(char_u *name) static int syn_scl_name2id(char_u *name)
{ {
int i;
char_u *name_u; char_u *name_u;
/* Avoid using stricmp() too much, it's slow on some systems */ /* Avoid using stricmp() too much, it's slow on some systems */
name_u = vim_strsave_up(name); name_u = vim_strsave_up(name);
if (name_u == NULL) if (name_u == NULL)
return 0; return 0;
for (i = curwin->w_s->b_syn_clusters.ga_len; --i >= 0; ) int i;
for (i = curwin->w_s->b_syn_clusters.ga_len; --i >= 0; ) {
if (SYN_CLSTR(curwin->w_s)[i].scl_name_u != NULL if (SYN_CLSTR(curwin->w_s)[i].scl_name_u != NULL
&& STRCMP(name_u, SYN_CLSTR(curwin->w_s)[i].scl_name_u) == 0) && STRCMP(name_u, SYN_CLSTR(curwin->w_s)[i].scl_name_u) == 0) {
break; break;
}
}
free(name_u); free(name_u);
return i < 0 ? 0 : i + SYNID_CLUSTER; return i < 0 ? 0 : i + SYNID_CLUSTER;
} }
@@ -4751,8 +4751,6 @@ static int syn_check_cluster(char_u *pp, int len)
*/ */
static int syn_add_cluster(char_u *name) static int syn_add_cluster(char_u *name)
{ {
int len;
/* /*
* First call for this growarray: init growing array. * First call for this growarray: init growing array.
*/ */
@@ -4761,7 +4759,7 @@ static int syn_add_cluster(char_u *name)
curwin->w_s->b_syn_clusters.ga_growsize = 10; curwin->w_s->b_syn_clusters.ga_growsize = 10;
} }
len = curwin->w_s->b_syn_clusters.ga_len; int len = curwin->w_s->b_syn_clusters.ga_len;
if (len >= MAX_CLUSTER_ID) { if (len >= MAX_CLUSTER_ID) {
EMSG((char_u *)_("E848: Too many syntax clusters")); EMSG((char_u *)_("E848: Too many syntax clusters"));
free(name); free(name);
@@ -5094,7 +5092,6 @@ get_id_list (
char_u *name; char_u *name;
regmatch_T regmatch; regmatch_T regmatch;
int id; int id;
int i;
int failed = FALSE; int failed = FALSE;
/* /*
@@ -5174,7 +5171,7 @@ get_id_list (
regmatch.rm_ic = TRUE; regmatch.rm_ic = TRUE;
id = 0; id = 0;
for (i = highlight_ga.ga_len; --i >= 0; ) { for (int i = highlight_ga.ga_len; --i >= 0; ) {
if (vim_regexec(&regmatch, HL_TABLE()[i].sg_name, if (vim_regexec(&regmatch, HL_TABLE()[i].sg_name,
(colnr_T)0)) { (colnr_T)0)) {
if (round == 2) { if (round == 2) {
@@ -5608,15 +5605,16 @@ int syn_get_stack_item(int i)
int syn_get_foldlevel(win_T *wp, long lnum) int syn_get_foldlevel(win_T *wp, long lnum)
{ {
int level = 0; int level = 0;
int i;
/* Return quickly when there are no fold items at all. */ /* Return quickly when there are no fold items at all. */
if (wp->w_s->b_syn_folditems != 0) { if (wp->w_s->b_syn_folditems != 0) {
syntax_start(wp, lnum); syntax_start(wp, lnum);
for (i = 0; i < current_state.ga_len; ++i) for (int i = 0; i < current_state.ga_len; ++i) {
if (CUR_STATE(i).si_flags & HL_FOLD) if (CUR_STATE(i).si_flags & HL_FOLD) {
++level; ++level;
}
}
} }
if (level > wp->w_p_fdn) { if (level > wp->w_p_fdn) {
level = wp->w_p_fdn; level = wp->w_p_fdn;
@@ -5656,14 +5654,13 @@ static void syn_clear_time(syn_time_T *st)
*/ */
static void syntime_clear(void) static void syntime_clear(void)
{ {
int idx;
synpat_T *spp; synpat_T *spp;
if (!syntax_present(curwin)) { if (!syntax_present(curwin)) {
MSG(_(msg_no_items)); MSG(_(msg_no_items));
return; return;
} }
for (idx = 0; idx < curwin->w_s->b_syn_patterns.ga_len; ++idx) { for (int idx = 0; idx < curwin->w_s->b_syn_patterns.ga_len; ++idx) {
spp = &(SYN_ITEMS(curwin->w_s)[idx]); spp = &(SYN_ITEMS(curwin->w_s)[idx]);
syn_clear_time(&spp->sp_time); syn_clear_time(&spp->sp_time);
} }
@@ -5697,7 +5694,6 @@ static int syn_compare_syntime(const void *v1, const void *v2)
*/ */
static void syntime_report(void) static void syntime_report(void)
{ {
int idx;
synpat_T *spp; synpat_T *spp;
proftime_T tm; proftime_T tm;
int len; int len;
@@ -5713,7 +5709,7 @@ static void syntime_report(void)
ga_init(&ga, sizeof(time_entry_T), 50); ga_init(&ga, sizeof(time_entry_T), 50);
profile_zero(&total_total); profile_zero(&total_total);
for (idx = 0; idx < curwin->w_s->b_syn_patterns.ga_len; ++idx) { for (int idx = 0; idx < curwin->w_s->b_syn_patterns.ga_len; ++idx) {
spp = &(SYN_ITEMS(curwin->w_s)[idx]); spp = &(SYN_ITEMS(curwin->w_s)[idx]);
if (spp->sp_time.count > 0) { if (spp->sp_time.count > 0) {
ga_grow(&ga, 1); ga_grow(&ga, 1);
@@ -5739,7 +5735,7 @@ static void syntime_report(void)
MSG_PUTS_TITLE(_( MSG_PUTS_TITLE(_(
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN")); " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"));
MSG_PUTS("\n"); MSG_PUTS("\n");
for (idx = 0; idx < ga.ga_len && !got_int; ++idx) { for (int idx = 0; idx < ga.ga_len && !got_int; ++idx) {
spp = &(SYN_ITEMS(curwin->w_s)[idx]); spp = &(SYN_ITEMS(curwin->w_s)[idx]);
p = ((time_entry_T *)ga.ga_data) + idx; p = ((time_entry_T *)ga.ga_data) + idx;
@@ -6103,7 +6099,7 @@ do_highlight (
* If no argument, list current highlighting. * If no argument, list current highlighting.
*/ */
if (ends_excmd(*line)) { if (ends_excmd(*line)) {
for (i = 1; i <= highlight_ga.ga_len && !got_int; ++i) for (int i = 1; i <= highlight_ga.ga_len && !got_int; ++i)
/* TODO: only call when the group has attributes set */ /* TODO: only call when the group has attributes set */
highlight_list_one((int)i); highlight_list_one((int)i);
return; return;
@@ -6213,8 +6209,9 @@ do_highlight (
/* /*
* Clear all default highlight groups and load the defaults. * Clear all default highlight groups and load the defaults.
*/ */
for (idx = 0; idx < highlight_ga.ga_len; ++idx) for (int idx = 0; idx < highlight_ga.ga_len; ++idx) {
highlight_clear(idx); highlight_clear(idx);
}
init_highlight(TRUE, TRUE); init_highlight(TRUE, TRUE);
highlight_changed(); highlight_changed();
redraw_later_clear(); redraw_later_clear();
@@ -6677,9 +6674,7 @@ do_highlight (
#if defined(EXITFREE) || defined(PROTO) #if defined(EXITFREE) || defined(PROTO)
void free_highlight(void) void free_highlight(void)
{ {
int i; for (int i = 0; i < highlight_ga.ga_len; ++i) {
for (i = 0; i < highlight_ga.ga_len; ++i) {
highlight_clear(i); highlight_clear(i);
free(HL_TABLE()[i].sg_name); free(HL_TABLE()[i].sg_name);
free(HL_TABLE()[i].sg_name_u); free(HL_TABLE()[i].sg_name_u);
@@ -6763,7 +6758,6 @@ static garray_T cterm_attr_table = {0, 0, 0, 0, NULL};
*/ */
static int get_attr_entry(garray_T *table, attrentry_T *aep) static int get_attr_entry(garray_T *table, attrentry_T *aep)
{ {
int i;
attrentry_T *taep; attrentry_T *taep;
static int recursive = FALSE; static int recursive = FALSE;
@@ -6776,7 +6770,7 @@ static int get_attr_entry(garray_T *table, attrentry_T *aep)
/* /*
* Try to find an entry with the same specifications. * Try to find an entry with the same specifications.
*/ */
for (i = 0; i < table->ga_len; ++i) { for (int i = 0; i < table->ga_len; ++i) {
taep = &(((attrentry_T *)table->ga_data)[i]); taep = &(((attrentry_T *)table->ga_data)[i]);
if ( aep->ae_attr == taep->ae_attr if ( aep->ae_attr == taep->ae_attr
&& ( && (
@@ -6817,8 +6811,9 @@ static int get_attr_entry(garray_T *table, attrentry_T *aep)
must_redraw = CLEAR; must_redraw = CLEAR;
for (i = 0; i < highlight_ga.ga_len; ++i) for (int i = 0; i < highlight_ga.ga_len; ++i) {
set_hl_attr(i); set_hl_attr(i);
}
recursive = FALSE; recursive = FALSE;
} }
@@ -6853,10 +6848,9 @@ static int get_attr_entry(garray_T *table, attrentry_T *aep)
*/ */
void clear_hl_tables(void) void clear_hl_tables(void)
{ {
int i;
attrentry_T *taep; attrentry_T *taep;
for (i = 0; i < term_attr_table.ga_len; ++i) { for (int i = 0; i < term_attr_table.ga_len; ++i) {
taep = &(((attrentry_T *)term_attr_table.ga_data)[i]); taep = &(((attrentry_T *)term_attr_table.ga_data)[i]);
free(taep->ae_u.term.start); free(taep->ae_u.term.start);
free(taep->ae_u.term.stop); free(taep->ae_u.term.stop);
@@ -7526,7 +7520,7 @@ int highlight_changed(void)
HL_TABLE()[hlcnt + 9].sg_term = highlight_attr[HLF_S]; HL_TABLE()[hlcnt + 9].sg_term = highlight_attr[HLF_S];
id_S = hlcnt + 10; id_S = hlcnt + 10;
} }
for (i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
sprintf((char *)userhl, "User%d", i + 1); sprintf((char *)userhl, "User%d", i + 1);
id = syn_name2id(userhl); id = syn_name2id(userhl);
if (id == 0) { if (id == 0) {

View File

@@ -1964,7 +1964,7 @@ findtag_end:
matches = NULL; matches = NULL;
match_count = 0; match_count = 0;
for (mtt = 0; mtt < MT_COUNT; ++mtt) { for (mtt = 0; mtt < MT_COUNT; ++mtt) {
for (i = 0; i < ga_match[mtt].ga_len; ++i) { for (int i = 0; i < ga_match[mtt].ga_len; ++i) {
mfp = ((struct match_found **)(ga_match[mtt].ga_data))[i]; mfp = ((struct match_found **)(ga_match[mtt].ga_data))[i];
if (matches == NULL) if (matches == NULL)
free(mfp); free(mfp);

View File

@@ -2235,7 +2235,6 @@ void ex_undolist(exarg_T *eap)
int mark; int mark;
int nomark; int nomark;
int changes = 1; int changes = 1;
int i;
/* /*
* 1: walk the tree to find all leafs, put the info in "ga". * 1: walk the tree to find all leafs, put the info in "ga".
@@ -2305,7 +2304,7 @@ void ex_undolist(exarg_T *eap)
msg_start(); msg_start();
msg_puts_attr((char_u *)_("number changes when saved"), msg_puts_attr((char_u *)_("number changes when saved"),
hl_attr(HLF_T)); hl_attr(HLF_T));
for (i = 0; i < ga.ga_len && !got_int; ++i) { for (int i = 0; i < ga.ga_len && !got_int; ++i) {
msg_putchar('\n'); msg_putchar('\n');
if (got_int) if (got_int)
break; break;

View File

@@ -3796,10 +3796,9 @@ void win_size_save(garray_T *gap)
void win_size_restore(garray_T *gap) void win_size_restore(garray_T *gap)
{ {
win_T *wp; win_T *wp;
int i;
if (win_count() * 2 == gap->ga_len) { if (win_count() * 2 == gap->ga_len) {
i = 0; int i = 0;
for (wp = firstwin; wp != NULL; wp = wp->w_next) { for (wp = firstwin; wp != NULL; wp = wp->w_next) {
frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]); frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
win_setheight_win(((int *)gap->ga_data)[i++], wp); win_setheight_win(((int *)gap->ga_data)[i++], wp);