patch 9.1.0449: MS-Windows: Compiler warnings

Problem:  MS-Windows: Compiler warnings
Solution: Resolve size_t to int warnings

closes: #14874

A couple of warnings in ex_docmd.c have been resolved by modifying their
function argument types, followed by some changes in various function
call sites.  This also allowed removal of some casts to cope with
size_t/int conversion.

Signed-off-by: Mike Williams <mrmrdubya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/evalfunc.c b/src/evalfunc.c
index d53dda4..6e1eb03 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4458,7 +4458,7 @@
 f_expand(typval_T *argvars, typval_T *rettv)
 {
     char_u	*s;
-    int		len;
+    size_t	len;
     int		options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
     expand_T	xpc;
     int		error = FALSE;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index c2aaca0..71bfa93 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -5077,7 +5077,7 @@
 {
     int		has_wildcards;	// need to expand wildcards
     char_u	*repl;
-    int		srclen;
+    size_t	srclen;
     char_u	*p;
     int		n;
     int		escaped;
@@ -5201,7 +5201,7 @@
 	    }
 	}
 
-	p = repl_cmdline(eap, p, (size_t)srclen, repl, cmdlinep);
+	p = repl_cmdline(eap, p, srclen, repl, cmdlinep);
 	vim_free(repl);
 	if (p == NULL)
 	    return FAIL;
@@ -9363,7 +9363,7 @@
  * the variable.  Otherwise return -1 and "*usedlen" is unchanged.
  */
     int
-find_cmdline_var(char_u *src, int *usedlen)
+find_cmdline_var(char_u *src, size_t *usedlen)
 {
     // must be sorted by the 'value' field because it is used by bsearch()!
     static keyvalue_T spec_str_tab[] = {
@@ -9444,7 +9444,7 @@
 eval_vars(
     char_u	*src,		// pointer into commandline
     char_u	*srcstart,	// beginning of valid memory for src
-    int		*usedlen,	// characters after src that are used
+    size_t	*usedlen,	// characters after src that are used
     linenr_T	*lnump,		// line number for :e command, or NULL
     char	**errormsg,	// pointer to error message
     int		*escaped,	// return value has escaped white space (can
@@ -9514,7 +9514,7 @@
      */
     else
     {
-	int off = 0;
+	size_t off = 0;
 
 	switch (spec_idx)
 	{
@@ -9781,7 +9781,7 @@
     size_t	len;
     char_u	*repl;
     size_t	repllen;
-    int		srclen;
+    size_t	srclen;
     char_u	*p;
 
     resultlen = STRLEN(arg);
diff --git a/src/filepath.c b/src/filepath.c
index 3bf8a2d..e68075a 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -292,7 +292,7 @@
 modify_fname(
     char_u	*src,		// string with modifiers
     int		tilde_file,	// "~" is a file name, not $HOME
-    int		*usedlen,	// characters after src that are used
+    size_t	*usedlen,	// characters after src that are used
     char_u	**fnamep,	// file name so far
     char_u	**bufp,		// buffer for allocated file name or NULL
     int		*fnamelen)	// length of fnamep
@@ -668,7 +668,7 @@
 			str = vim_strnsave(*fnamep, *fnamelen);
 			if (sub != NULL && str != NULL)
 			{
-			    *usedlen = (int)(p + 1 - src);
+			    *usedlen = p + 1 - src;
 			    s = do_string_sub(str, pat, sub, NULL, flags);
 			    if (s != NULL)
 			    {
@@ -1038,7 +1038,7 @@
 {
     char_u	*fname;
     char_u	*mods;
-    int		usedlen = 0;
+    size_t	usedlen = 0;
     int		len = 0;
     char_u	*fbuf = NULL;
     char_u	buf[NUMBUFLEN];
@@ -2707,7 +2707,7 @@
 
     if (homedir_env != NULL && *homedir_env == '~')
     {
-	int	usedlen = 0;
+	size_t	usedlen = 0;
 	int	flen;
 	char_u	*fbuf = NULL;
 
@@ -3170,7 +3170,7 @@
     char_u	*eval_pat = NULL;
     char_u	*exp_pat = *pat;
     char	*ignored_msg;
-    int		usedlen;
+    size_t	usedlen;
     int		is_cur_alt_file = *exp_pat == '%' || *exp_pat == '#';
     int		star_follows = FALSE;
 
diff --git a/src/if_cscope.c b/src/if_cscope.c
index d9982ef..7b6fd92 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -541,7 +541,7 @@
     char	*ppath = NULL;
     int		i;
     int		len;
-    int		usedlen = 0;
+    size_t	usedlen = 0;
     char_u	*fbuf = NULL;
 
     // get the filename (arg1), expand it, and try to stat it
diff --git a/src/proto/ex_docmd.pro b/src/proto/ex_docmd.pro
index 3fd20b2..3bd7705 100644
--- a/src/proto/ex_docmd.pro
+++ b/src/proto/ex_docmd.pro
@@ -66,8 +66,8 @@
 void ex_normal(exarg_T *eap);
 void exec_normal_cmd(char_u *cmd, int remap, int silent);
 void exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop);
-int find_cmdline_var(char_u *src, int *usedlen);
-char_u *eval_vars(char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char **errormsg, int *escaped, int empty_is_error);
+int find_cmdline_var(char_u *src, size_t *usedlen);
+char_u *eval_vars(char_u *src, char_u *srcstart, size_t *usedlen, linenr_T *lnump, char **errormsg, int *escaped, int empty_is_error);
 char_u *expand_sfile(char_u *arg);
 void dialog_msg(char_u *buff, char *format, char_u *fname);
 void set_no_hlsearch(int flag);
diff --git a/src/proto/filepath.pro b/src/proto/filepath.pro
index fd8de80..53fa4ec 100644
--- a/src/proto/filepath.pro
+++ b/src/proto/filepath.pro
@@ -1,5 +1,5 @@
 /* filepath.c */
-int modify_fname(char_u *src, int tilde_file, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen);
+int modify_fname(char_u *src, int tilde_file, size_t *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen);
 void shorten_dir(char_u *str);
 int file_is_readable(char_u *fname);
 void f_chdir(typval_T *argvars, typval_T *rettv);
diff --git a/src/strings.c b/src/strings.c
index 33de175..9b66ee0 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -151,7 +151,7 @@
     char_u	*p;
     char_u	*d;
     char_u	*escaped_string;
-    int		l;
+    size_t	l;
     int		csh_like;
     int		fish_like;
     char_u	*shname;
@@ -269,11 +269,12 @@
 		*d++ = *p++;
 		continue;
 	    }
-	    if (do_special && find_cmdline_var(p, &l) >= 0)
+	    if (do_special && find_cmdline_var(p, &l) >= 0 && l > 0)
 	    {
 		*d++ = '\\';		// insert backslash
-		while (--l >= 0)	// copy the var
+		do			// copy the var
 		    *d++ = *p++;
+		while (--l > 0);
 		continue;
 	    }
 	    if (*p == '\\' && fish_like)
diff --git a/src/version.c b/src/version.c
index 8a1cab3..6871bf9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    449,
+/**/
     448,
 /**/
     447,