# HG changeset patch # User Bram Moolenaar # Date 1641667503 -3600 # Node ID 18cafa092e8d827788b92ef8bbca294306f45cb0 # Parent 348fe974547548eecace60c764dc69620e6804c1 patch 8.2.4045: some global functions are only used in one file Commit: https://github.com/vim/vim/commit/782b43d89473dac00e3a8e02224a8330b88dbfef Author: Yegappan Lakshmanan Date: Sat Jan 8 18:43:40 2022 +0000 patch 8.2.4045: some global functions are only used in one file Problem: Some global functions are only used in one file. Solution: Make the functions static. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/9492) diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4095,7 +4095,33 @@ f_setcmdpos(typval_T *argvars, typval_T if (pos >= 0) rettv->vval.v_number = set_cmdline_pos(pos); } - +#endif + +#if defined(FEAT_EVAL) || defined(FEAT_CMDWIN) +/* + * Get the current command-line type. + * Returns ':' or '/' or '?' or '@' or '>' or '-' + * Only works when the command line is being edited. + * Returns NUL when something is wrong. + */ + static int +get_cmdline_type(void) +{ + cmdline_info_T *p = get_ccline_ptr(); + + if (p == NULL) + return NUL; + if (p->cmdfirstc == NUL) + return +# ifdef FEAT_EVAL + (p->input_fn) ? '@' : +# endif + '-'; + return p->cmdfirstc; +} +#endif + +#if defined(FEAT_EVAL) || defined(PROTO) /* * "getcmdtype()" function */ @@ -4113,30 +4139,6 @@ f_getcmdtype(typval_T *argvars UNUSED, t #endif -#if defined(FEAT_EVAL) || defined(FEAT_CMDWIN) || defined(PROTO) -/* - * Get the current command-line type. - * Returns ':' or '/' or '?' or '@' or '>' or '-' - * Only works when the command line is being edited. - * Returns NUL when something is wrong. - */ - int -get_cmdline_type(void) -{ - cmdline_info_T *p = get_ccline_ptr(); - - if (p == NULL) - return NUL; - if (p->cmdfirstc == NUL) - return -# ifdef FEAT_EVAL - (p->input_fn) ? '@' : -# endif - '-'; - return p->cmdfirstc; -} -#endif - /* * Return the first character of the current command line. */ diff --git a/src/highlight.c b/src/highlight.c --- a/src/highlight.c +++ b/src/highlight.c @@ -460,6 +460,21 @@ init_highlight( #endif } +#if defined(FEAT_EVAL) && (defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)) +/* + * Load a default color list. Intended to support legacy color names but allows + * the user to override the color values. Only loaded once. + */ + static void +load_default_colors_lists() +{ + // Lacking a default color list isn't the end of the world but it is likely + // an inconvenience so users should know when it is missing. + if (source_runtime((char_u *)"colors/lists/default.vim", DIP_ALL) != OK) + msg("failed to load colors/lists/default.vim"); +} +#endif + /* * Load color file "name". * Return OK for success, FAIL for failure. @@ -2272,7 +2287,7 @@ hex_digit(int c) return 0x1ffffff; } - guicolor_T + static guicolor_T decode_hex_color(char_u *hex) { guicolor_T color; @@ -2294,7 +2309,7 @@ decode_hex_color(char_u *hex) // such name exists in the color table. The convention is to use lowercase for // all keys in the v:colornames dictionary. The value can be either a string in // the form #rrggbb or a number, either of which is converted to a guicolor_T. - guicolor_T + static guicolor_T colorname2rgb(char_u *name) { dict_T *colornames_table = get_vim_var_dict(VV_COLORNAMES); @@ -2335,18 +2350,6 @@ colorname2rgb(char_u *name) return INVALCOLOR; } -/* - * Load a default color list. Intended to support legacy color names but allows - * the user to override the color values. Only loaded once. - */ - void -load_default_colors_lists() -{ - // Lacking a default color list isn't the end of the world but it is likely - // an inconvenience so users should know when it is missing. - if (source_runtime((char_u *)"colors/lists/default.vim", DIP_ALL) != OK) - msg("failed to load colors/lists/default.vim"); -} #endif guicolor_T diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro --- a/src/proto/ex_getln.pro +++ b/src/proto/ex_getln.pro @@ -34,7 +34,6 @@ void f_getcmdline(typval_T *argvars, typ void f_getcmdpos(typval_T *argvars, typval_T *rettv); void f_setcmdpos(typval_T *argvars, typval_T *rettv); void f_getcmdtype(typval_T *argvars, typval_T *rettv); -int get_cmdline_type(void); int get_cmdline_firstc(void); int get_list_range(char_u **str, int *num1, int *num2); char *check_cedit(void); diff --git a/src/proto/highlight.pro b/src/proto/highlight.pro --- a/src/proto/highlight.pro +++ b/src/proto/highlight.pro @@ -14,9 +14,6 @@ void hl_set_font_name(char_u *font_name) void hl_set_bg_color_name(char_u *name); void hl_set_fg_color_name(char_u *name); guicolor_T color_name2handle(char_u *name); -guicolor_T decode_hex_color(char_u *hex); -guicolor_T colorname2rgb(char_u *name); -void load_default_colors_lists(void); guicolor_T gui_get_color_cmn(char_u *name); guicolor_T gui_get_rgb_color_cmn(int r, int g, int b); int get_cterm_attr_idx(int attr, int fg, int bg); diff --git a/src/proto/vim9compile.pro b/src/proto/vim9compile.pro --- a/src/proto/vim9compile.pro +++ b/src/proto/vim9compile.pro @@ -8,7 +8,6 @@ int need_type(type_T *actual, type_T *ex lvar_T *reserve_local(cctx_T *cctx, char_u *name, size_t len, int isConst, type_T *type); int get_script_item_idx(int sid, char_u *name, int check_writable, cctx_T *cctx); imported_T *find_imported(char_u *name, size_t len, cctx_T *cctx); -imported_T *find_imported_in_script(char_u *name, size_t len, int sid); char_u *may_peek_next_line(cctx_T *cctx, char_u *arg, char_u **nextp); char_u *peek_next_line_from_context(cctx_T *cctx); char_u *next_line_from_context(cctx_T *cctx, int skip_comment); diff --git a/src/proto/vim9instr.pro b/src/proto/vim9instr.pro --- a/src/proto/vim9instr.pro +++ b/src/proto/vim9instr.pro @@ -1,7 +1,6 @@ /* vim9instr.c */ isn_T *generate_instr(cctx_T *cctx, isntype_T isn_type); isn_T *generate_instr_drop(cctx_T *cctx, isntype_T isn_type, int drop); -isn_T *generate_instr_type2(cctx_T *cctx, isntype_T isn_type, type_T *type, type_T *decl_type); isn_T *generate_instr_type(cctx_T *cctx, isntype_T isn_type, type_T *type); isn_T *generate_instr_debug(cctx_T *cctx); int may_generate_2STRING(int offset, int tolerant, cctx_T *cctx); @@ -28,9 +27,7 @@ int generate_GETITEM(cctx_T *cctx, int i int generate_SLICE(cctx_T *cctx, int count); int generate_CHECKLEN(cctx_T *cctx, int min_len, int more_OK); int generate_STORE(cctx_T *cctx, isntype_T isn_type, int idx, char_u *name); -int generate_STOREOUTER(cctx_T *cctx, int idx, int level); int generate_STORENR(cctx_T *cctx, int idx, varnumber_T value); -int generate_STOREOPT(cctx_T *cctx, isntype_T isn_type, char_u *name, int opt_flags); int generate_LOAD(cctx_T *cctx, isntype_T isn_type, int idx, char_u *name, type_T *type); int generate_LOADOUTER(cctx_T *cctx, int idx, int nesting, type_T *type); int generate_LOADV(cctx_T *cctx, char_u *name, int error); diff --git a/src/proto/window.pro b/src/proto/window.pro --- a/src/proto/window.pro +++ b/src/proto/window.pro @@ -43,7 +43,6 @@ tabpage_T *win_find_tabpage(win_T *win); win_T *win_vert_neighbor(tabpage_T *tp, win_T *wp, int up, long count); win_T *win_horz_neighbor(tabpage_T *tp, win_T *wp, int left, long count); void win_enter(win_T *wp, int undo_sync); -void fix_current_dir(void); win_T *buf_jump_open_win(buf_T *buf); win_T *buf_jump_open_tab(buf_T *buf); void win_free_popup(win_T *win); diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 4045, +/**/ 4044, /**/ 4043, diff --git a/src/vim9compile.c b/src/vim9compile.c --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -557,6 +557,27 @@ get_script_item_idx(int sid, char_u *nam return -1; } + static imported_T * +find_imported_in_script(char_u *name, size_t len, int sid) +{ + scriptitem_T *si; + int idx; + + if (!SCRIPT_ID_VALID(sid)) + return NULL; + si = SCRIPT_ITEM(sid); + for (idx = 0; idx < si->sn_imports.ga_len; ++idx) + { + imported_T *import = ((imported_T *)si->sn_imports.ga_data) + idx; + + if (len == 0 ? STRCMP(name, import->imp_name) == 0 + : STRLEN(import->imp_name) == len + && STRNCMP(name, import->imp_name, len) == 0) + return import; + } + return NULL; +} + /* * Find "name" in imported items of the current script or in "cctx" if not * NULL. @@ -583,27 +604,6 @@ find_imported(char_u *name, size_t len, return find_imported_in_script(name, len, current_sctx.sc_sid); } - imported_T * -find_imported_in_script(char_u *name, size_t len, int sid) -{ - scriptitem_T *si; - int idx; - - if (!SCRIPT_ID_VALID(sid)) - return NULL; - si = SCRIPT_ITEM(sid); - for (idx = 0; idx < si->sn_imports.ga_len; ++idx) - { - imported_T *import = ((imported_T *)si->sn_imports.ga_data) + idx; - - if (len == 0 ? STRCMP(name, import->imp_name) == 0 - : STRLEN(import->imp_name) == len - && STRNCMP(name, import->imp_name, len) == 0) - return import; - } - return NULL; -} - /* * Free all imported variables. */ diff --git a/src/vim9instr.c b/src/vim9instr.c --- a/src/vim9instr.c +++ b/src/vim9instr.c @@ -66,7 +66,7 @@ generate_instr_drop(cctx_T *cctx, isntyp * Generate instruction "isn_type" and put "type" on the type stack, * use "decl_type" for the declared type. */ - isn_T * + static isn_T * generate_instr_type2( cctx_T *cctx, isntype_T isn_type, @@ -828,7 +828,7 @@ generate_STORE(cctx_T *cctx, isntype_T i /* * Generate an ISN_STOREOUTER instruction. */ - int + static int generate_STOREOUTER(cctx_T *cctx, int idx, int level) { isn_T *isn; @@ -862,7 +862,7 @@ generate_STORENR(cctx_T *cctx, int idx, /* * Generate an ISN_STOREOPT or ISN_STOREFUNCOPT instruction */ - int + static int generate_STOREOPT( cctx_T *cctx, isntype_T isn_type, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -4735,6 +4735,54 @@ win_enter(win_T *wp, int undo_sync) } /* + * Used after making another window the current one: change directory if + * needed. + */ + static void +fix_current_dir(void) +{ +#ifdef FEAT_AUTOCHDIR + if (p_acd) + do_autochdir(); + else +#endif + if (curwin->w_localdir != NULL || curtab->tp_localdir != NULL) + { + char_u *dirname; + + // Window or tab has a local directory: Save current directory as + // global directory (unless that was done already) and change to the + // local directory. + if (globaldir == NULL) + { + char_u cwd[MAXPATHL]; + + if (mch_dirname(cwd, MAXPATHL) == OK) + globaldir = vim_strsave(cwd); + } + if (curwin->w_localdir != NULL) + dirname = curwin->w_localdir; + else + dirname = curtab->tp_localdir; + + if (mch_chdir((char *)dirname) == 0) + { + last_chdir_reason = NULL; + shorten_fnames(TRUE); + } + } + else if (globaldir != NULL) + { + // Window doesn't have a local directory and we are not in the global + // directory: Change to the global directory. + vim_ignored = mch_chdir((char *)globaldir); + VIM_CLEAR(globaldir); + last_chdir_reason = NULL; + shorten_fnames(TRUE); + } +} + +/* * Make window "wp" the current window. * Can be called with "flags" containing WEE_CURWIN_INVALID, which means that * curwin has just been closed and isn't valid. @@ -4859,54 +4907,6 @@ win_enter_ext(win_T *wp, int flags) } /* - * Used after making another window the current one: change directory if - * needed. - */ - void -fix_current_dir(void) -{ -#ifdef FEAT_AUTOCHDIR - if (p_acd) - do_autochdir(); - else -#endif - if (curwin->w_localdir != NULL || curtab->tp_localdir != NULL) - { - char_u *dirname; - - // Window or tab has a local directory: Save current directory as - // global directory (unless that was done already) and change to the - // local directory. - if (globaldir == NULL) - { - char_u cwd[MAXPATHL]; - - if (mch_dirname(cwd, MAXPATHL) == OK) - globaldir = vim_strsave(cwd); - } - if (curwin->w_localdir != NULL) - dirname = curwin->w_localdir; - else - dirname = curtab->tp_localdir; - - if (mch_chdir((char *)dirname) == 0) - { - last_chdir_reason = NULL; - shorten_fnames(TRUE); - } - } - else if (globaldir != NULL) - { - // Window doesn't have a local directory and we are not in the global - // directory: Change to the global directory. - vim_ignored = mch_chdir((char *)globaldir); - VIM_CLEAR(globaldir); - last_chdir_reason = NULL; - shorten_fnames(TRUE); - } -} - -/* * Jump to the first open window that contains buffer "buf", if one exists. * Returns a pointer to the window found, otherwise NULL. */