patch 8.2.0928: many type casts are used for vim_strnsave()

Problem:    Many type casts are used for vim_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes #5633)  Remove some type casts.
diff --git a/src/autocmd.c b/src/autocmd.c
index d6945f3..937e741 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -763,7 +763,7 @@
     save_ei = vim_strsave(p_ei);
     if (save_ei != NULL)
     {
-	new_ei = vim_strnsave(p_ei, (int)(STRLEN(p_ei) + STRLEN(what)));
+	new_ei = vim_strnsave(p_ei, STRLEN(p_ei) + STRLEN(what));
 	if (new_ei != NULL)
 	{
 	    if (*what == ',' && *p_ei == NUL)
@@ -991,7 +991,7 @@
 	;
     if (p > arg)
     {
-	group_name = vim_strnsave(arg, (int)(p - arg));
+	group_name = vim_strnsave(arg, p - arg);
 	if (group_name == NULL)		// out of memory
 	    return AUGROUP_ERROR;
 	group = au_find_group(group_name);
diff --git a/src/channel.c b/src/channel.c
index d11b148..740329f 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -2906,7 +2906,7 @@
 	    {
 		// Copy the message into allocated memory (excluding the NL)
 		// and remove it from the buffer (including the NL).
-		msg = vim_strnsave(buf, (int)(nl - buf));
+		msg = vim_strnsave(buf, nl - buf);
 		channel_consume(channel, part, (int)(nl - buf) + 1);
 	    }
 	}
@@ -3703,7 +3703,7 @@
 	{
 	    // Copy the message into allocated memory and remove it from the
 	    // buffer.
-	    msg = vim_strnsave(buf, (int)(nl - buf));
+	    msg = vim_strnsave(buf, nl - buf);
 	    channel_consume(channel, part, (int)(nl - buf) + 1);
 	}
     }
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index f84bf7a..1e33987 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -2555,7 +2555,7 @@
 	{
 	    if (ga_grow(&ga, 1) == FAIL)
 		break;
-	    ((char_u **)ga.ga_data)[ga.ga_len] = vim_strnsave(s, (int)(e - s));
+	    ((char_u **)ga.ga_data)[ga.ga_len] = vim_strnsave(s, e - s);
 	    ++ga.ga_len;
 	}
 
diff --git a/src/dict.c b/src/dict.c
index 3824f40..9d94261 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -779,7 +779,7 @@
     for (p = *arg; ASCII_ISALNUM(*p) || *p == '_' || *p == '-'; ++p)
 	;
     tv->v_type = VAR_STRING;
-    tv->vval.v_string = vim_strnsave(*arg, (int)(p - *arg));
+    tv->vval.v_string = vim_strnsave(*arg, p - *arg);
 
     *arg = skipwhite(p);
     return OK;
diff --git a/src/diff.c b/src/diff.c
index 88dc8a6..1b0ad47 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1301,7 +1301,7 @@
 	if (curbuf->b_fname != NULL)
 	{
 	    newname = vim_strnsave(curbuf->b_fname,
-					  (int)(STRLEN(curbuf->b_fname) + 4));
+						  STRLEN(curbuf->b_fname) + 4);
 	    if (newname != NULL)
 		STRCAT(newname, ".new");
 	}
diff --git a/src/digraph.c b/src/digraph.c
index dd5920a..d4175d5 100644
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -2387,10 +2387,10 @@
 	{
 	    kp = (kmap_T *)curbuf->b_kmap_ga.ga_data + curbuf->b_kmap_ga.ga_len;
 	    s = skiptowhite(p);
-	    kp->from = vim_strnsave(p, (int)(s - p));
+	    kp->from = vim_strnsave(p, s - p);
 	    p = skipwhite(s);
 	    s = skiptowhite(p);
-	    kp->to = vim_strnsave(p, (int)(s - p));
+	    kp->to = vim_strnsave(p, s - p);
 
 	    if (kp->from == NULL || kp->to == NULL
 		    || STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN
diff --git a/src/eval.c b/src/eval.c
index b184264..6ca3628 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3139,7 +3139,7 @@
 		    if (n1 >= len || n2 < 0 || n1 > n2)
 			s = NULL;
 		    else
-			s = vim_strnsave(s + n1, (int)(n2 - n1 + 1));
+			s = vim_strnsave(s + n1, n2 - n1 + 1);
 		}
 		else
 		{
diff --git a/src/evalfunc.c b/src/evalfunc.c
index cdc806d..4414509 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5521,7 +5521,7 @@
 
 		vim_free(li1->li_tv.vval.v_string);
 		li1->li_tv.vval.v_string = vim_strnsave(regmatch.startp[0],
-				(int)(regmatch.endp[0] - regmatch.startp[0]));
+					regmatch.endp[0] - regmatch.startp[0]);
 		li3->li_tv.vval.v_number =
 				      (varnumber_T)(regmatch.startp[0] - expr);
 		li4->li_tv.vval.v_number =
@@ -5556,7 +5556,7 @@
 		    copy_tv(&li->li_tv, rettv);
 		else
 		    rettv->vval.v_string = vim_strnsave(regmatch.startp[0],
-				(int)(regmatch.endp[0] - regmatch.startp[0]));
+					regmatch.endp[0] - regmatch.startp[0]);
 	    }
 	    else if (l != NULL)
 		rettv->vval.v_number = idx;
@@ -8861,7 +8861,7 @@
 	    }
 	}
     }
-    rettv->vval.v_string = vim_strnsave(head, (int)(tail - head));
+    rettv->vval.v_string = vim_strnsave(head, tail - head);
 }
 
 #ifdef FEAT_FLOAT
diff --git a/src/highlight.c b/src/highlight.c
index 6291f24..5d123ac 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -906,7 +906,7 @@
 	while (*linep && !VIM_ISWHITE(*linep) && *linep != '=')
 	    ++linep;
 	vim_free(key);
-	key = vim_strnsave_up(key_start, (int)(linep - key_start));
+	key = vim_strnsave_up(key_start, linep - key_start);
 	if (key == NULL)
 	{
 	    error = TRUE;
diff --git a/src/misc2.c b/src/misc2.c
index 02fd418..41b9f71 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1291,7 +1291,7 @@
  * shorter.
  */
     char_u *
-vim_strnsave(char_u *string, int len)
+vim_strnsave(char_u *string, size_t len)
 {
     char_u	*p;
 
@@ -1538,7 +1538,7 @@
  * This uses ASCII lower-to-upper case translation, language independent.
  */
     char_u *
-vim_strnsave_up(char_u *string, int len)
+vim_strnsave_up(char_u *string, size_t len)
 {
     char_u *p1;
 
diff --git a/src/proto/misc2.pro b/src/proto/misc2.pro
index 44f22f2..3477452 100644
--- a/src/proto/misc2.pro
+++ b/src/proto/misc2.pro
@@ -32,14 +32,14 @@
 void do_outofmem_msg(size_t size);
 void free_all_mem(void);
 char_u *vim_strsave(char_u *string);
-char_u *vim_strnsave(char_u *string, int len);
+char_u *vim_strnsave(char_u *string, size_t len);
 char_u *vim_memsave(char_u *p, size_t len);
 char_u *vim_strsave_escaped(char_u *string, char_u *esc_chars);
 char_u *vim_strsave_escaped_ext(char_u *string, char_u *esc_chars, int cc, int bsl);
 int csh_like_shell(void);
 char_u *vim_strsave_shellescape(char_u *string, int do_special, int do_newline);
 char_u *vim_strsave_up(char_u *string);
-char_u *vim_strnsave_up(char_u *string, int len);
+char_u *vim_strnsave_up(char_u *string, size_t len);
 void vim_strup(char_u *p);
 char_u *strup_save(char_u *orig);
 char_u *strlow_save(char_u *orig);
diff --git a/src/syntax.c b/src/syntax.c
index f2f74a1..5c9dd0b 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -5097,7 +5097,7 @@
 	while (*key_end && !VIM_ISWHITE(*key_end) && *key_end != '=')
 	    ++key_end;
 	vim_free(key);
-	key = vim_strnsave_up(rest, (int)(key_end - rest));
+	key = vim_strnsave_up(rest, key_end - rest);
 	if (key == NULL)			// out of memory
 	{
 	    rest = NULL;
@@ -5762,7 +5762,7 @@
 	arg_end = skiptowhite(arg_start);
 	next_arg = skipwhite(arg_end);
 	vim_free(key);
-	key = vim_strnsave_up(arg_start, (int)(arg_end - arg_start));
+	key = vim_strnsave_up(arg_start, arg_end - arg_start);
 	if (STRCMP(key, "CCOMMENT") == 0)
 	{
 	    if (!eap->skip)
diff --git a/src/version.c b/src/version.c
index 32264ca..3eb845c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    928,
+/**/
     927,
 /**/
     926,