Mercurial > vim
changeset 27028:c9474ae175f4 v8.2.4043
patch 8.2.4043: using int for second argument of ga_init2()
Commit: https://github.com/vim/vim/commit/04935fb17e5f0f66b82cf4546b9752d3d1fa650e
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 8 16:19:22 2022 +0000
patch 8.2.4043: using int for second argument of ga_init2()
Problem: Using int for second argument of ga_init2().
Solution: Remove unnessary type cast (int) when using sizeof().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 08 Jan 2022 17:30:04 +0100 |
parents | 167e35b85720 |
children | 07308e9dd7dc |
files | src/arglist.c src/channel.c src/cmdexpand.c src/dict.c src/digraph.c src/eval.c src/evalfunc.c src/evalvars.c src/evalwindow.c src/ex_docmd.c src/fileio.c src/filepath.c src/findfile.c src/fold.c src/hardcopy.c src/help.c src/if_py_both.h src/job.c src/list.c src/menu.c src/os_win32.c src/register.c src/scriptfile.c src/spellfile.c src/spellsuggest.c src/strings.c src/syntax.c src/tag.c src/terminal.c src/undo.c src/usercmd.c src/userfunc.c src/version.c src/vim9execute.c src/viminfo.c src/window.c |
diffstat | 36 files changed, 69 insertions(+), 67 deletions(-) [+] |
line wrap: on
line diff
--- a/src/arglist.c +++ b/src/arglist.c @@ -51,7 +51,7 @@ alist_clear(alist_T *al) void alist_init(alist_T *al) { - ga_init2(&al->al_ga, (int)sizeof(aentry_T), 5); + ga_init2(&al->al_ga, sizeof(aentry_T), 5); } /* @@ -275,7 +275,7 @@ do_one_arg(char_u *str) static int get_arglist(garray_T *gap, char_u *str, int escaped) { - ga_init2(gap, (int)sizeof(char_u *), 20); + ga_init2(gap, sizeof(char_u *), 20); while (*str != NUL) { if (ga_grow(gap, 1) == FAIL)
--- a/src/channel.c +++ b/src/channel.c @@ -2306,7 +2306,7 @@ channel_add_block_id(chanpart_T *chanpar garray_T *gap = &chanpart->ch_block_ids; if (gap->ga_growsize == 0) - ga_init2(gap, (int)sizeof(int), 10); + ga_init2(gap, sizeof(int), 10); if (ga_grow(gap, 1) == OK) { ((int *)gap->ga_data)[gap->ga_len] = id;
--- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -2342,7 +2342,7 @@ expand_shellcmd( // Go over all directories in $PATH. Expand matches in that directory and // collect them in "ga". When "." is not in $PATH also expand for the // current directory, to find "subdir/cmd". - ga_init2(&ga, (int)sizeof(char *), 10); + ga_init2(&ga, sizeof(char *), 10); hash_init(&found_ht); for (s = path; ; s = e) { @@ -2497,7 +2497,7 @@ ExpandUserDefined( if (retstr == NULL) return FAIL; - ga_init2(&ga, (int)sizeof(char *), 3); + ga_init2(&ga, sizeof(char *), 3); for (s = retstr; *s != NUL; s = e) { e = vim_strchr(s, '\n'); @@ -2543,7 +2543,7 @@ ExpandUserList( if (retlist == NULL) return FAIL; - ga_init2(&ga, (int)sizeof(char *), 3); + ga_init2(&ga, sizeof(char *), 3); // Loop over the items in the list. FOR_ALL_LIST_ITEMS(retlist, li) {
--- a/src/dict.c +++ b/src/dict.c @@ -759,7 +759,7 @@ dict2string(typval_T *tv, int copyID, in if ((d = tv->vval.v_dict) == NULL) return NULL; - ga_init2(&ga, (int)sizeof(char), 80); + ga_init2(&ga, sizeof(char), 80); ga_append(&ga, '{'); todo = (int)d->dv_hashtab.ht_used;
--- a/src/digraph.c +++ b/src/digraph.c @@ -2632,7 +2632,7 @@ ex_loadkeymap(exarg_T *eap) keymap_unload(); curbuf->b_kmap_state = 0; - ga_init2(&curbuf->b_kmap_ga, (int)sizeof(kmap_T), 20); + ga_init2(&curbuf->b_kmap_ga, sizeof(kmap_T), 20); // Set 'cpoptions' to "C" to avoid line continuation. p_cpo = (char_u *)"C";
--- a/src/eval.c +++ b/src/eval.c @@ -487,7 +487,7 @@ typval2string(typval_T *tv, int convert) if (convert && tv->v_type == VAR_LIST) { - ga_init2(&ga, (int)sizeof(char), 80); + ga_init2(&ga, sizeof(char), 80); if (tv->vval.v_list != NULL) { list_join(&ga, tv->vval.v_list, (char_u *)"\n", TRUE, FALSE, 0);
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -3662,7 +3662,7 @@ execute_common(typval_T *argvars, typval if (redir_execute) save_ga = redir_execute_ga; - ga_init2(&redir_execute_ga, (int)sizeof(char), 500); + ga_init2(&redir_execute_ga, sizeof(char), 500); redir_execute = TRUE; redir_off = FALSE; if (!echo_output)
--- a/src/evalvars.c +++ b/src/evalvars.c @@ -4025,7 +4025,7 @@ clear_redir_lval(void) void init_redir_ga(void) { - ga_init2(&redir_ga, (int)sizeof(char), 500); + ga_init2(&redir_ga, sizeof(char), 500); } /*
--- a/src/evalwindow.c +++ b/src/evalwindow.c @@ -1120,7 +1120,7 @@ f_winrestcmd(typval_T *argvars UNUSED, t garray_T ga; char_u buf[50]; - ga_init2(&ga, (int)sizeof(char), 70); + ga_init2(&ga, sizeof(char), 70); // Do this twice to handle some window layouts properly. for (i = 0; i < 2; ++i)
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -691,7 +691,7 @@ do_cmdline( #ifdef FEAT_EVAL CLEAR_FIELD(cstack); cstack.cs_idx = -1; - ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10); + ga_init2(&lines_ga, sizeof(wcmd_T), 10); real_cookie = getline_cookie(fgetline, cookie);
--- a/src/fileio.c +++ b/src/fileio.c @@ -4774,7 +4774,7 @@ readdir_core( struct dirent *dp; # endif - ga_init2(gap, (int)sizeof(void *), 20); + ga_init2(gap, sizeof(void *), 20); # ifdef FEAT_EVAL # define FREE_ITEM(item) do { \
--- a/src/filepath.c +++ b/src/filepath.c @@ -1388,7 +1388,7 @@ f_globpath(typval_T *argvars, typval_T * } if (file != NULL && !error) { - ga_init2(&ga, (int)sizeof(char_u *), 10); + ga_init2(&ga, sizeof(char_u *), 10); globpath(tv_get_string(&argvars[0]), file, &ga, flags); if (rettv->v_type == VAR_STRING) rettv->vval.v_string = ga_concat_strings(&ga, "\n"); @@ -3908,7 +3908,7 @@ gen_expand_wildcards( /* * The matching file names are stored in a growarray. Init it empty. */ - ga_init2(&ga, (int)sizeof(char_u *), 30); + ga_init2(&ga, sizeof(char_u *), 30); for (i = 0; i < num_pat; ++i) {
--- a/src/findfile.c +++ b/src/findfile.c @@ -2430,7 +2430,7 @@ uniquefy_paths(garray_T *gap, char_u *pa char_u *short_name; remove_duplicates(gap); - ga_init2(&path_ga, (int)sizeof(char_u *), 1); + ga_init2(&path_ga, sizeof(char_u *), 1); /* * We need to prepend a '*' at the beginning of file_pattern so that the @@ -2611,7 +2611,7 @@ expand_in_path( return 0; mch_dirname(curdir, MAXPATHL); - ga_init2(&path_ga, (int)sizeof(char_u *), 1); + ga_init2(&path_ga, sizeof(char_u *), 1); expand_path_option(curdir, &path_ga); vim_free(curdir); if (path_ga.ga_len == 0)
--- a/src/fold.c +++ b/src/fold.c @@ -647,7 +647,7 @@ foldCreate(linenr_T start, linenr_T end) if (ga_grow(gap, 1) == OK) { fp = (fold_T *)gap->ga_data + i; - ga_init2(&fold_ga, (int)sizeof(fold_T), 10); + ga_init2(&fold_ga, sizeof(fold_T), 10); // Count number of folds that will be contained in the new fold. for (cont = 0; i + cont < gap->ga_len; ++cont) @@ -1018,7 +1018,7 @@ foldMoveTo( void foldInitWin(win_T *new_win) { - ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10); + ga_init2(&new_win->w_folds, sizeof(fold_T), 10); } // find_wl_entry() {{{2 @@ -2868,7 +2868,7 @@ foldInsert(garray_T *gap, int i) if (gap->ga_len > 0 && i < gap->ga_len) mch_memmove(fp + 1, fp, sizeof(fold_T) * (gap->ga_len - i)); ++gap->ga_len; - ga_init2(&fp->fd_nested, (int)sizeof(fold_T), 10); + ga_init2(&fp->fd_nested, sizeof(fold_T), 10); return OK; }
--- a/src/hardcopy.c +++ b/src/hardcopy.c @@ -1650,7 +1650,7 @@ prt_flush_buffer(void) prt_write_string("s\n"); ga_clear(&prt_ps_buffer); - ga_init2(&prt_ps_buffer, (int)sizeof(char), prt_bufsiz); + ga_init2(&prt_ps_buffer, sizeof(char), prt_bufsiz); } } @@ -2649,7 +2649,7 @@ mch_print_init( prt_bufsiz = psettings->chars_per_line; if (prt_out_mbyte) prt_bufsiz *= 2; - ga_init2(&prt_ps_buffer, (int)sizeof(char), prt_bufsiz); + ga_init2(&prt_ps_buffer, sizeof(char), prt_bufsiz); prt_page_num = 0;
--- a/src/help.c +++ b/src/help.c @@ -999,7 +999,7 @@ helptags_one( // If using the "++t" argument or generating tags for "$VIMRUNTIME/doc" // add the "help-tags" tag. - ga_init2(&ga, (int)sizeof(char_u *), 100); + ga_init2(&ga, sizeof(char_u *), 100); if (add_help_tags || fullpathcmp((char_u *)"$VIMRUNTIME/doc", dir, FALSE, TRUE) == FPC_SAME) {
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -3264,7 +3264,7 @@ FunctionRepr(FunctionObject *self) typval_T tv; char_u numbuf[NUMBUFLEN]; - ga_init2(&repr_ga, (int)sizeof(char), 70); + ga_init2(&repr_ga, sizeof(char), 70); ga_concat(&repr_ga, (char_u *)"<vim.Function '"); if (self->name) ga_concat(&repr_ga, self->name);
--- a/src/job.c +++ b/src/job.c @@ -1296,7 +1296,7 @@ job_start( job->jv_status = JOB_FAILED; #ifndef USE_ARGV - ga_init2(&ga, (int)sizeof(char*), 20); + ga_init2(&ga, sizeof(char*), 20); #endif if (opt_arg != NULL) @@ -1435,7 +1435,7 @@ job_start( { garray_T ga; - ga_init2(&ga, (int)sizeof(char), 200); + ga_init2(&ga, sizeof(char), 200); for (i = 0; i < argc; ++i) { if (i > 0)
--- a/src/list.c +++ b/src/list.c @@ -1299,7 +1299,7 @@ list2string(typval_T *tv, int copyID, in if (tv->vval.v_list == NULL) return NULL; - ga_init2(&ga, (int)sizeof(char), 80); + ga_init2(&ga, sizeof(char), 80); ga_append(&ga, '['); CHECK_LIST_MATERIALIZE(tv->vval.v_list); if (list_join(&ga, tv->vval.v_list, (char_u *)", ", @@ -1412,7 +1412,7 @@ list_join( if (l->lv_len < 1) return OK; // nothing to do - ga_init2(&join_ga, (int)sizeof(join_T), l->lv_len); + ga_init2(&join_ga, sizeof(join_T), l->lv_len); retval = list_join_inner(gap, l, sep, echo_style, restore_copyID, copyID, &join_ga); @@ -1461,7 +1461,7 @@ f_join(typval_T *argvars, typval_T *rett if (sep != NULL) { - ga_init2(&ga, (int)sizeof(char), 80); + ga_init2(&ga, sizeof(char), 80); list_join(&ga, argvars[0].vval.v_list, sep, TRUE, FALSE, 0); ga_append(&ga, NUL); rettv->vval.v_string = (char_u *)ga.ga_data;
--- a/src/menu.c +++ b/src/menu.c @@ -2664,7 +2664,7 @@ ex_menutranslate(exarg_T *eap UNUSED) char_u *from, *from_noamp, *to; if (menutrans_ga.ga_itemsize == 0) - ga_init2(&menutrans_ga, (int)sizeof(menutrans_T), 5); + ga_init2(&menutrans_ga, sizeof(menutrans_T), 5); /* * ":menutrans clear": clear all translations.
--- a/src/os_win32.c +++ b/src/os_win32.c @@ -5280,7 +5280,7 @@ mch_job_start(char *cmd, job_T *job, job ofd[1] = INVALID_HANDLE_VALUE; efd[0] = INVALID_HANDLE_VALUE; efd[1] = INVALID_HANDLE_VALUE; - ga_init2(&ga, (int)sizeof(wchar_t), 500); + ga_init2(&ga, sizeof(wchar_t), 500); jo = CreateJobObject(NULL, NULL); if (jo == NULL)
--- a/src/register.c +++ b/src/register.c @@ -527,7 +527,7 @@ execreg_line_continuation(char_u **lines int j; char_u *str; - ga_init2(&ga, (int)sizeof(char_u), 400); + ga_init2(&ga, sizeof(char_u), 400); // search backwards to find the first line of this command. // Any line not starting with \ or "\ is the start of the
--- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -835,7 +835,7 @@ ExpandRTDir( *num_file = 0; *file = NULL; pat_len = (int)STRLEN(pat); - ga_init2(&ga, (int)sizeof(char *), 10); + ga_init2(&ga, sizeof(char *), 10); for (i = 0; dirnames[i] != NULL; ++i) { @@ -929,7 +929,7 @@ ExpandPackAddDir( *num_file = 0; *file = NULL; pat_len = (int)STRLEN(pat); - ga_init2(&ga, (int)sizeof(char *), 10); + ga_init2(&ga, sizeof(char *), 10); s = alloc(pat_len + 26); if (s == NULL) @@ -1833,7 +1833,7 @@ getsourceline( { garray_T ga; - ga_init2(&ga, (int)sizeof(char_u), 400); + ga_init2(&ga, sizeof(char_u), 400); ga_concat(&ga, line); if (*p == '\\') ga_concat(&ga, p + 1);
--- a/src/spellfile.c +++ b/src/spellfile.c @@ -5905,12 +5905,12 @@ mkspell( spin.si_ascii = ascii; spin.si_followup = TRUE; spin.si_rem_accents = TRUE; - ga_init2(&spin.si_rep, (int)sizeof(fromto_T), 20); - ga_init2(&spin.si_repsal, (int)sizeof(fromto_T), 20); - ga_init2(&spin.si_sal, (int)sizeof(fromto_T), 20); - ga_init2(&spin.si_map, (int)sizeof(char_u), 100); - ga_init2(&spin.si_comppat, (int)sizeof(char_u *), 20); - ga_init2(&spin.si_prefcond, (int)sizeof(char_u *), 50); + ga_init2(&spin.si_rep, sizeof(fromto_T), 20); + ga_init2(&spin.si_repsal, sizeof(fromto_T), 20); + ga_init2(&spin.si_sal, sizeof(fromto_T), 20); + ga_init2(&spin.si_map, sizeof(char_u), 100); + ga_init2(&spin.si_comppat, sizeof(char_u *), 20); + ga_init2(&spin.si_prefcond, sizeof(char_u *), 50); hash_init(&spin.si_commonwords); spin.si_newcompID = 127; // start compound ID at first maximum
--- a/src/spellsuggest.c +++ b/src/spellsuggest.c @@ -774,8 +774,8 @@ spell_find_suggest( // Set the info in "*su". CLEAR_POINTER(su); - ga_init2(&su->su_ga, (int)sizeof(suggest_T), 10); - ga_init2(&su->su_sga, (int)sizeof(suggest_T), 10); + ga_init2(&su->su_ga, sizeof(suggest_T), 10); + ga_init2(&su->su_sga, sizeof(suggest_T), 10); if (*badptr == NUL) return; hash_init(&su->su_banned); @@ -2943,7 +2943,7 @@ score_combine(suginfo_T *su) check_suggestions(su, &su->su_sga); (void)cleanup_suggestions(&su->su_sga, su->su_maxscore, su->su_maxcount); - ga_init2(&ga, (int)sizeof(suginfo_T), 1); + ga_init2(&ga, sizeof(suginfo_T), 1); if (ga_grow(&ga, su->su_ga.ga_len + su->su_sga.ga_len) == FAIL) return;
--- a/src/strings.c +++ b/src/strings.c @@ -893,7 +893,7 @@ string_filter_map( // set_vim_var_nr() doesn't set the type set_vim_var_type(VV_KEY, VAR_NUMBER); - ga_init2(&ga, (int)sizeof(char), 80); + ga_init2(&ga, sizeof(char), 80); for (p = str; *p != NUL; p += len) { typval_T newtv; @@ -1673,7 +1673,7 @@ f_tr(typval_T *argvars, typval_T *rettv) rettv->vval.v_string = NULL; if (fromstr == NULL || tostr == NULL) return; // type error; errmsg already given - ga_init2(&ga, (int)sizeof(char), 80); + ga_init2(&ga, sizeof(char), 80); if (!has_mbyte) // not multi-byte: fromstr and tostr must be the same length
--- a/src/syntax.c +++ b/src/syntax.c @@ -1414,7 +1414,7 @@ store_current_state(void) { // Need to clear it, might be something remaining from when the // length was less than SST_FIX_STATES. - ga_init2(&sp->sst_union.sst_ga, (int)sizeof(bufstate_T), 1); + ga_init2(&sp->sst_union.sst_ga, sizeof(bufstate_T), 1); if (ga_grow(&sp->sst_union.sst_ga, current_state.ga_len) == FAIL) sp->sst_stacksize = 0; else @@ -1833,7 +1833,7 @@ syn_current_attr( // Init the list of zero-width matches with a nextlist. This is used to // avoid matching the same item in the same position twice. - ga_init2(&zero_width_next_ga, (int)sizeof(int), 10); + ga_init2(&zero_width_next_ga, sizeof(int), 10); // use syntax iskeyword option save_chartab(buf_chartab);
--- a/src/tag.c +++ b/src/tag.c @@ -1752,7 +1752,7 @@ find_tags( #endif for (mtt = 0; mtt < MT_COUNT; ++mtt) { - ga_init2(&ga_match[mtt], (int)sizeof(char_u *), 100); + ga_init2(&ga_match[mtt], sizeof(char_u *), 100); hash_init(&ht_match[mtt]); } @@ -2952,7 +2952,7 @@ get_tagfname( if (first) { ga_clear_strings(&tag_fnames); - ga_init2(&tag_fnames, (int)sizeof(char_u *), 10); + ga_init2(&tag_fnames, sizeof(char_u *), 10); do_in_runtimepath((char_u *) #ifdef FEAT_MULTI_LANG # ifdef VMS
--- a/src/terminal.c +++ b/src/terminal.c @@ -6674,8 +6674,8 @@ conpty_term_and_job_init( HANDLE i_ours = NULL; HANDLE o_ours = NULL; - ga_init2(&ga_cmd, (int)sizeof(char*), 20); - ga_init2(&ga_env, (int)sizeof(char*), 20); + ga_init2(&ga_cmd, sizeof(char*), 20); + ga_init2(&ga_env, sizeof(char*), 20); if (argvar->v_type == VAR_STRING) { @@ -7022,8 +7022,8 @@ winpty_term_and_job_init( garray_T ga_cmd, ga_env; char_u *cmd = NULL; - ga_init2(&ga_cmd, (int)sizeof(char*), 20); - ga_init2(&ga_env, (int)sizeof(char*), 20); + ga_init2(&ga_cmd, sizeof(char*), 20); + ga_init2(&ga_env, sizeof(char*), 20); if (argvar->v_type == VAR_STRING) {
--- a/src/undo.c +++ b/src/undo.c @@ -3081,7 +3081,7 @@ ex_undolist(exarg_T *eap UNUSED) */ mark = ++lastmark; nomark = ++lastmark; - ga_init2(&ga, (int)sizeof(char *), 20); + ga_init2(&ga, sizeof(char *), 20); uhp = curbuf->b_u_oldhead; while (uhp != NULL)
--- a/src/usercmd.c +++ b/src/usercmd.c @@ -917,7 +917,7 @@ uc_add_command( { gap = &curbuf->b_ucmds; if (gap->ga_itemsize == 0) - ga_init2(gap, (int)sizeof(ucmd_T), 4); + ga_init2(gap, sizeof(ucmd_T), 4); } else gap = &ucmds;
--- a/src/userfunc.c +++ b/src/userfunc.c @@ -222,11 +222,11 @@ get_function_args( char_u *whitep = *argp; if (newargs != NULL) - ga_init2(newargs, (int)sizeof(char_u *), 3); + ga_init2(newargs, sizeof(char_u *), 3); if (argtypes != NULL) - ga_init2(argtypes, (int)sizeof(char_u *), 3); + ga_init2(argtypes, sizeof(char_u *), 3); if (!skip && default_args != NULL) - ga_init2(default_args, (int)sizeof(char_u *), 3); + ga_init2(default_args, sizeof(char_u *), 3); if (varargs != NULL) *varargs = FALSE; @@ -1149,7 +1149,7 @@ lambda_function_body( eap.cookie = evalarg->eval_cookie; } - ga_init2(&newlines, (int)sizeof(char_u *), 10); + ga_init2(&newlines, sizeof(char_u *), 10); if (get_function_body(&eap, &newlines, NULL, &evalarg->eval_tofree_ga) == FAIL) goto erret; @@ -1436,7 +1436,7 @@ get_lambda_tv( if (pt == NULL) goto errret; - ga_init2(&newlines, (int)sizeof(char_u *), 1); + ga_init2(&newlines, sizeof(char_u *), 1); if (ga_grow(&newlines, 1) == FAIL) goto errret; @@ -1760,7 +1760,7 @@ get_func_tv( // Prepare for calling test_garbagecollect_now(), need to know // what variables are used on the call stack. if (funcargs.ga_itemsize == 0) - ga_init2(&funcargs, (int)sizeof(typval_T *), 50); + ga_init2(&funcargs, sizeof(typval_T *), 50); for (i = 0; i < argcount; ++i) if (ga_grow(&funcargs, 1) == OK) ((typval_T **)funcargs.ga_data)[funcargs.ga_len++] = @@ -4173,7 +4173,7 @@ define_function(exarg_T *eap, char_u *na goto ret_free; } - ga_init2(&newlines, (int)sizeof(char_u *), 10); + ga_init2(&newlines, sizeof(char_u *), 10); if (!eap->skip && name_arg == NULL) {
--- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4043, +/**/ 4042, /**/ 4041,
--- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -174,7 +174,7 @@ static garray_T dict_stack = GA_EMPTY; dict_stack_save(typval_T *tv) { if (dict_stack.ga_growsize == 0) - ga_init2(&dict_stack, (int)sizeof(typval_T), 10); + ga_init2(&dict_stack, sizeof(typval_T), 10); if (ga_grow(&dict_stack, 1) == FAIL) return FAIL; ((typval_T *)dict_stack.ga_data)[dict_stack.ga_len] = *tv;
--- a/src/viminfo.c +++ b/src/viminfo.c @@ -2912,7 +2912,7 @@ do_viminfo(FILE *fp_in, FILE *fp_out, in return; vir.vir_fd = fp_in; vir.vir_conv.vc_type = CONV_NONE; - ga_init2(&vir.vir_barlines, (int)sizeof(char_u *), 100); + ga_init2(&vir.vir_barlines, sizeof(char_u *), 100); vir.vir_version = -1; if (fp_in != NULL)