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 #9492)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index ede0f20..c63c896 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4095,7 +4095,33 @@
     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 @@
 
 #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
index efbc5b1..a8af2b1 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -460,6 +460,21 @@
 #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 @@
     return 0x1ffffff;
 }
 
-    guicolor_T
+    static guicolor_T
 decode_hex_color(char_u *hex)
 {
     guicolor_T color;
@@ -2294,7 +2309,7 @@
 // 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 @@
     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 d56893a..f97719b 100644
--- a/src/proto/ex_getln.pro
+++ b/src/proto/ex_getln.pro
@@ -34,7 +34,6 @@
 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 b17f40d..5635a17 100644
--- a/src/proto/highlight.pro
+++ b/src/proto/highlight.pro
@@ -14,9 +14,6 @@
 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 33290d0..98c40c8 100644
--- a/src/proto/vim9compile.pro
+++ b/src/proto/vim9compile.pro
@@ -8,7 +8,6 @@
 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 b20dcf7..c945500 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_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 740d310..654d36a 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -43,7 +43,6 @@
 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 86ab085..a1dea1f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 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 90d7adb..11e3226 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -557,6 +557,27 @@
     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 @@
     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 4961695..8ce32a7 100644
--- a/src/vim9instr.c
+++ b/src/vim9instr.c
@@ -66,7 +66,7 @@
  * 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 an ISN_STOREOUTER instruction.
  */
-    int
+    static int
 generate_STOREOUTER(cctx_T *cctx, int idx, int level)
 {
     isn_T	*isn;
@@ -862,7 +862,7 @@
 /*
  * 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 6d5d0a4..05e85ba 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4735,6 +4735,54 @@
 }
 
 /*
+ * 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 @@
 }
 
 /*
- * 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.
  */