diff options
-rw-r--r-- | src/ex_getln.c | 38 | ||||
-rw-r--r-- | src/highlight.c | 31 | ||||
-rw-r--r-- | src/proto/ex_getln.pro | 1 | ||||
-rw-r--r-- | src/proto/highlight.pro | 3 | ||||
-rw-r--r-- | src/proto/vim9compile.pro | 1 | ||||
-rw-r--r-- | src/proto/vim9instr.pro | 3 | ||||
-rw-r--r-- | src/proto/window.pro | 1 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 42 | ||||
-rw-r--r-- | src/vim9instr.c | 6 | ||||
-rw-r--r-- | src/window.c | 96 |
11 files changed, 111 insertions, 113 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index ede0f2020f..c63c8960f5 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4095,32 +4095,16 @@ f_setcmdpos(typval_T *argvars, typval_T *rettv) if (pos >= 0) rettv->vval.v_number = set_cmdline_pos(pos); } - -/* - * "getcmdtype()" function - */ - void -f_getcmdtype(typval_T *argvars UNUSED, typval_T *rettv) -{ - rettv->v_type = VAR_STRING; - rettv->vval.v_string = alloc(2); - if (rettv->vval.v_string != NULL) - { - rettv->vval.v_string[0] = get_cmdline_type(); - rettv->vval.v_string[1] = NUL; - } -} - #endif -#if defined(FEAT_EVAL) || defined(FEAT_CMDWIN) || defined(PROTO) +#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. */ - int + static int get_cmdline_type(void) { cmdline_info_T *p = get_ccline_ptr(); @@ -4137,6 +4121,24 @@ get_cmdline_type(void) } #endif +#if defined(FEAT_EVAL) || defined(PROTO) +/* + * "getcmdtype()" function + */ + void +f_getcmdtype(typval_T *argvars UNUSED, typval_T *rettv) +{ + rettv->v_type = VAR_STRING; + rettv->vval.v_string = alloc(2); + if (rettv->vval.v_string != NULL) + { + rettv->vval.v_string[0] = get_cmdline_type(); + rettv->vval.v_string[1] = NUL; + } +} + +#endif + /* * Return the first character of the current command line. */ diff --git a/src/highlight.c b/src/highlight.c index efbc5b10e2..a8af2b18cf 100644 --- 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 index d56893a657..f97719b756 100644 --- a/src/proto/ex_getln.pro +++ b/src/proto/ex_getln.pro @@ -34,7 +34,6 @@ void f_getcmdline(typval_T *argvars, typval_T *rettv); 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 index b17f40df30..5635a17384 100644 --- 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 index 33290d09e7..98c40c86cb 100644 --- a/src/proto/vim9compile.pro +++ b/src/proto/vim9compile.pro @@ -8,7 +8,6 @@ int need_type(type_T *actual, type_T *expected, int offset, int arg_idx, cctx_T 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 index b20dcf7d1b..c9455003e9 100644 --- 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 index, int with_op); 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 index 740d310b76..654d36a6e3 100644 --- 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 index 86ab08594a..a1dea1fea0 100644 --- 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 index 90d7adbb79..11e3226451 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -557,6 +557,27 @@ get_script_item_idx(int sid, char_u *name, int check_writable, cctx_T *cctx) 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, cctx_T *cctx) 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 index 4961695f07..8ce32a766a 100644 --- a/src/vim9instr.c +++ b/src/vim9instr.c @@ -66,7 +66,7 @@ generate_instr_drop(cctx_T *cctx, isntype_T isn_type, int drop) * 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 isn_type, int idx, char_u *name) /* * 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, varnumber_T value) /* * 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 index 6d5d0a4b8a..05e85baf36 100644 --- 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. */ |