patch 8.2.0967: unnecessary type casts for vim_strnsave()

Problem:    Unnecessary type casts for vim_strnsave().
Solution:   Remove the type casts.
diff --git a/src/evalvars.c b/src/evalvars.c
index 3d03ed8..f2128a6 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -2534,7 +2534,7 @@
     }
     else
     {
-	p = vim_strnsave(name, (int)len);
+	p = vim_strnsave(name, len);
 	if (p == NULL)
 	    return NULL;
     }
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 2280fcf..11894f6 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3221,7 +3221,7 @@
 	    p = vim_strchr(eap->nextcmd, NL);
 	    if (p == NULL)
 		p = eap->nextcmd + STRLEN(eap->nextcmd);
-	    theline = vim_strnsave(eap->nextcmd, (int)(p - eap->nextcmd));
+	    theline = vim_strnsave(eap->nextcmd, p - eap->nextcmd);
 	    if (*p != NUL)
 		++p;
 	    eap->nextcmd = p;
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 68207cb..a13f844 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -439,7 +439,7 @@
 	{
 	    cmdlen = (int)STRLEN(cmdname);
 	    ret = (char *)vim_strnsave((char_u *)"Vim(",
-					   4 + cmdlen + 2 + (int)STRLEN(mesg));
+						4 + cmdlen + 2 + STRLEN(mesg));
 	    if (ret == NULL)
 		return ret;
 	    STRCPY(&ret[4], cmdname);
@@ -448,7 +448,7 @@
 	}
 	else
 	{
-	    ret = (char *)vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
+	    ret = (char *)vim_strnsave((char_u *)"Vim:", 4 + STRLEN(mesg));
 	    if (ret == NULL)
 		return ret;
 	    val = ret + 4;
@@ -806,7 +806,7 @@
 	    if (pending & CSTP_THROW)
 	    {
 		vim_snprintf((char *)IObuff, IOSIZE, mesg, _("Exception"));
-		mesg = (char *)vim_strnsave(IObuff, (int)STRLEN(IObuff) + 4);
+		mesg = (char *)vim_strnsave(IObuff, STRLEN(IObuff) + 4);
 		STRCAT(mesg, ": %s");
 		s = (char *)((except_T *)value)->value;
 	    }
diff --git a/src/fileio.c b/src/fileio.c
index 3896ba8..7b60529 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2724,7 +2724,7 @@
     }
     else
     {
-	r = vim_strnsave(*pp, (int)(p - *pp));
+	r = vim_strnsave(*pp, p - *pp);
 	*pp = p + 1;
 	if (r != NULL)
 	{
diff --git a/src/filepath.c b/src/filepath.c
index 4a4948a..90d04cf 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -389,7 +389,7 @@
 	if (mch_isdir(*fnamep))
 	{
 	    // Make room for one or two extra characters.
-	    *fnamep = vim_strnsave(*fnamep, (int)STRLEN(*fnamep) + 2);
+	    *fnamep = vim_strnsave(*fnamep, STRLEN(*fnamep) + 2);
 	    vim_free(*bufp);	// free any allocated file name
 	    *bufp = *fnamep;
 	    if (*fnamep == NULL)
@@ -655,7 +655,7 @@
 	    p = vim_strchr(s, sep);
 	    if (p != NULL)
 	    {
-		pat = vim_strnsave(s, (int)(p - s));
+		pat = vim_strnsave(s, p - s);
 		if (pat != NULL)
 		{
 		    s = p + 1;
@@ -663,7 +663,7 @@
 		    p = vim_strchr(s, sep);
 		    if (p != NULL)
 		    {
-			sub = vim_strnsave(s, (int)(p - s));
+			sub = vim_strnsave(s, p - s);
 			str = vim_strnsave(*fnamep, *fnamelen);
 			if (sub != NULL && str != NULL)
 			{
@@ -1296,7 +1296,7 @@
 	return OK;
 
     // If the directory exists we're done.  Otherwise: create it.
-    updir = vim_strnsave(dir, (int)(p - dir));
+    updir = vim_strnsave(dir, p - dir);
     if (updir == NULL)
 	return FAIL;
     if (mch_isdir(updir))
@@ -1594,7 +1594,7 @@
 			    --prevlen;
 		}
 		if (prevlen == 0)
-		    s = vim_strnsave(start, (int)len);
+		    s = vim_strnsave(start, len);
 		else
 		{
 		    // Change "prev" buffer to be the right size.  This way
@@ -3037,7 +3037,7 @@
     int		i;
 
     // Create the command: lop off the backticks.
-    cmd = vim_strnsave(pat + 1, (int)STRLEN(pat) - 2);
+    cmd = vim_strnsave(pat + 1, STRLEN(pat) - 2);
     if (cmd == NULL)
 	return -1;
 
diff --git a/src/findfile.c b/src/findfile.c
index a6bec97..2139d8b 100644
--- a/src/findfile.c
+++ b/src/findfile.c
@@ -451,7 +451,7 @@
 		if (walker)
 		{
 		    search_ctx->ffsc_stopdirs_v[dircount-1] =
-				 vim_strnsave(helper, (int)(walker - helper));
+					 vim_strnsave(helper, walker - helper);
 		    walker++;
 		}
 		else
@@ -484,7 +484,7 @@
 	char	*errpt;
 
 	// save the fix part of the path
-	search_ctx->ffsc_fix_path = vim_strnsave(path, (int)(wc_part - path));
+	search_ctx->ffsc_fix_path = vim_strnsave(path, wc_part - path);
 
 	/*
 	 * copy wc_path and add restricts to the '**' wildcard.
diff --git a/src/highlight.c b/src/highlight.c
index 5d123ac..dacce5c 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -963,7 +963,7 @@
 	    break;
 	}
 	vim_free(arg);
-	arg = vim_strnsave(arg_start, (int)(linep - arg_start));
+	arg = vim_strnsave(arg_start, linep - arg_start);
 	if (arg == NULL)
 	{
 	    error = TRUE;
@@ -5003,7 +5003,7 @@
     {
 	p = skiptowhite(eap->arg);
 	if (!eap->skip)
-	    g = vim_strnsave(eap->arg, (int)(p - eap->arg));
+	    g = vim_strnsave(eap->arg, p - eap->arg);
 	p = skipwhite(p);
 	if (*p == NUL)
 	{
diff --git a/src/if_perl.xs b/src/if_perl.xs
index ef02730..9a99fc0 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -1435,7 +1435,7 @@
     char_u *str;
     PerlIOVim * s = PerlIOSelf(f, PerlIOVim);
 
-    str = vim_strnsave((char_u *)vbuf, (int)count);
+    str = vim_strnsave((char_u *)vbuf, count);
     if (str == NULL)
 	return 0;
     msg_split((char_u *)str, s->attr);
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 2480ee4..692af4c 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -1858,7 +1858,7 @@
 
 		rettv->v_type = VAR_STRING;
 		rettv->vval.v_string = vim_strnsave((char_u *)RSTRING_PTR(str),
-							 (int)RSTRING_LEN(str));
+							     RSTRING_LEN(str));
 	    }
 	    break;
 	case T_ARRAY:
diff --git a/src/insexpand.c b/src/insexpand.c
index 6963baf..03dddc3 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -1579,7 +1579,7 @@
 	ins_compl_restart();
 
     vim_free(compl_leader);
-    compl_leader = vim_strnsave(line + compl_col, (int)(p - line) - compl_col);
+    compl_leader = vim_strnsave(line + compl_col, (p - line) - compl_col);
     if (compl_leader != NULL)
     {
 	ins_compl_new_leader();
@@ -1706,7 +1706,7 @@
     {
 	vim_free(compl_leader);
 	compl_leader = vim_strnsave(ml_get_curline() + compl_col,
-				     (int)(curwin->w_cursor.col - compl_col));
+					     curwin->w_cursor.col - compl_col);
 	if (compl_leader != NULL)
 	    ins_compl_new_leader();
     }
diff --git a/src/json.c b/src/json.c
index 2720abf..8eb6680 100644
--- a/src/json.c
+++ b/src/json.c
@@ -662,7 +662,7 @@
 	    if (cur_item != NULL)
 	    {
 		cur_item->v_type = VAR_STRING;
-		cur_item->vval.v_string = vim_strnsave(key, (int)(p - key));
+		cur_item->vval.v_string = vim_strnsave(key, p - key);
 		top_item->jd_key = cur_item->vval.v_string;
 	    }
 	    reader->js_used += (int)(p - key);
diff --git a/src/mark.c b/src/mark.c
index 298da67..948a182 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -680,7 +680,7 @@
     if (mp->lnum == 0 || mp->lnum > curbuf->b_ml.ml_line_count)
 	return vim_strsave((char_u *)"-invalid-");
     // Allow for up to 5 bytes per character.
-    s = vim_strnsave(skipwhite(ml_get(mp->lnum)), (int)Columns * 5);
+    s = vim_strnsave(skipwhite(ml_get(mp->lnum)), Columns * 5);
     if (s == NULL)
 	return NULL;
     // Truncate the line to fit it in the window.
diff --git a/src/memline.c b/src/memline.c
index 73db42f..347b44d 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -1375,7 +1375,7 @@
 #endif
 	for (p = b0p->b0_fname + fnsize; p > b0p->b0_fname && p[-1] != NUL; --p)
 	    ;
-	b0_fenc = vim_strnsave(p, (int)(b0p->b0_fname + fnsize - p));
+	b0_fenc = vim_strnsave(p, b0p->b0_fname + fnsize - p);
     }
 
     mf_put(mfp, hp, FALSE, FALSE);	// release block 0
diff --git a/src/menu.c b/src/menu.c
index b017925..8a69edd 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1810,7 +1810,7 @@
     {
 	if (actext != NULL)
 	    *actext = vim_strsave(p + 1);
-	text = vim_strnsave(str, (int)(p - str));
+	text = vim_strnsave(str, p - str);
     }
     else
 	text = vim_strsave(str);
@@ -2716,7 +2716,7 @@
 		if (from != NULL)
 		{
 		    from_noamp = menu_text(from, NULL, NULL);
-		    to = vim_strnsave(to, (int)(arg - to));
+		    to = vim_strnsave(to, arg - to);
 		    if (from_noamp != NULL && to != NULL)
 		    {
 			menu_translate_tab_and_shift(from);
diff --git a/src/misc1.c b/src/misc1.c
index db76d9b..bab9e68 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1795,7 +1795,7 @@
 	    if (p == exe_name || p == p_hf)
 #endif
 		// check that the result is a directory name
-		p = vim_strnsave(p, (int)(pend - p));
+		p = vim_strnsave(p, pend - p);
 
 	    if (p != NULL && !mch_isdir(p))
 		VIM_CLEAR(p);
@@ -2576,7 +2576,7 @@
 
 #ifdef MSWIN
     p = gettail(p_sh);
-    p = vim_strnsave(p, (int)(skiptowhite(p) - p));
+    p = vim_strnsave(p, skiptowhite(p) - p);
 #else
     p = skiptowhite(p_sh);
     if (*p == NUL)
@@ -2593,7 +2593,7 @@
 	for (p2 = p_sh; p2 < p; MB_PTR_ADV(p2))
 	    if (vim_ispathsep(*p2))
 		p1 = p2 + 1;
-	p = vim_strnsave(p1, (int)(p - p1));
+	p = vim_strnsave(p1, p - p1);
     }
 #endif
     return p;
diff --git a/src/ops.c b/src/ops.c
index 8f31deb..a681df0 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1616,7 +1616,7 @@
 	if (pre_textlen >= 0
 		     && (ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
 	{
-	    ins_text = vim_strnsave(firstline, (int)ins_len);
+	    ins_text = vim_strnsave(firstline, ins_len);
 	    if (ins_text != NULL)
 	    {
 		// block handled here
diff --git a/src/os_win32.c b/src/os_win32.c
index 6356076..43ad102 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -477,8 +477,7 @@
 
     if (exe_path == NULL && exe_name != NULL)
     {
-	exe_path = vim_strnsave(exe_name,
-				     (int)(gettail_sep(exe_name) - exe_name));
+	exe_path = vim_strnsave(exe_name, gettail_sep(exe_name) - exe_name);
 	if (exe_path != NULL)
 	{
 	    // Append our starting directory to $PATH, so that when doing
diff --git a/src/regexp.c b/src/regexp.c
index c222d9c..de0b0fa 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -1846,7 +1846,7 @@
 	if (s == NULL || rsm.sm_match->endp[i] == NULL)
 	    s = NULL;
 	else
-	    s = vim_strnsave(s, (int)(rsm.sm_match->endp[i] - s));
+	    s = vim_strnsave(s, rsm.sm_match->endp[i] - s);
 	li->li_tv.v_type = VAR_STRING;
 	li->li_tv.vval.v_string = s;
 	li = li->li_next;
@@ -2462,7 +2462,7 @@
 	if (s == NULL || rsm.sm_match->endp[no] == NULL)
 	    retval = NULL;
 	else
-	    retval = vim_strnsave(s, (int)(rsm.sm_match->endp[no] - s));
+	    retval = vim_strnsave(s, rsm.sm_match->endp[no] - s);
     }
 
     return retval;
diff --git a/src/regexp_bt.c b/src/regexp_bt.c
index fef66e4..d19515a 100644
--- a/src/regexp_bt.c
+++ b/src/regexp_bt.c
@@ -4588,7 +4588,7 @@
 		if (reg_startzp[i] != NULL && reg_endzp[i] != NULL)
 		    re_extmatch_out->matches[i] =
 			    vim_strnsave(reg_startzp[i],
-					(int)(reg_endzp[i] - reg_startzp[i]));
+						reg_endzp[i] - reg_startzp[i]);
 	    }
 	}
     }
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index a55750b..444b446 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -7103,8 +7103,7 @@
 
 		if (lpos->start != NULL && lpos->end != NULL)
 		    re_extmatch_out->matches[i] =
-			    vim_strnsave(lpos->start,
-					      (int)(lpos->end - lpos->start));
+			    vim_strnsave(lpos->start, lpos->end - lpos->start);
 	    }
 	}
     }
diff --git a/src/register.c b/src/register.c
index 3968b07..2db5136 100644
--- a/src/register.c
+++ b/src/register.c
@@ -2655,7 +2655,7 @@
     {
 	char_u	    *p, *s;
 
-	p = vim_strnsave(str, (int)len);
+	p = vim_strnsave(str, len);
 	if (p == NULL)
 	    return;
 	if (must_append && expr_line != NULL)
diff --git a/src/search.c b/src/search.c
index 7a4cdb7..91a26dd 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1916,7 +1916,7 @@
     for (p = linep + startpos->col + 1; *p && *p != '('; ++p)
 	;
     delim_len = (p - linep) - startpos->col - 1;
-    delim_copy = vim_strnsave(linep + startpos->col + 1, (int)delim_len);
+    delim_copy = vim_strnsave(linep + startpos->col + 1, delim_len);
     if (delim_copy == NULL)
 	return FALSE;
     for (lnum = startpos->lnum; lnum <= endpos->lnum; ++lnum)
diff --git a/src/sign.c b/src/sign.c
index 576c4d0..a3dfaf0 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -1309,22 +1309,22 @@
 	if (STRNCMP(arg, "icon=", 5) == 0)
 	{
 	    arg += 5;
-	    icon = vim_strnsave(arg, (int)(p - arg));
+	    icon = vim_strnsave(arg, p - arg);
 	}
 	else if (STRNCMP(arg, "text=", 5) == 0)
 	{
 	    arg += 5;
-	    text = vim_strnsave(arg, (int)(p - arg));
+	    text = vim_strnsave(arg, p - arg);
 	}
 	else if (STRNCMP(arg, "linehl=", 7) == 0)
 	{
 	    arg += 7;
-	    linehl = vim_strnsave(arg, (int)(p - arg));
+	    linehl = vim_strnsave(arg, p - arg);
 	}
 	else if (STRNCMP(arg, "texthl=", 7) == 0)
 	{
 	    arg += 7;
-	    texthl = vim_strnsave(arg, (int)(p - arg));
+	    texthl = vim_strnsave(arg, p - arg);
 	}
 	else
 	{
diff --git a/src/syntax.c b/src/syntax.c
index 5c9dd0b..6bbe4ba 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -4652,7 +4652,7 @@
 		arg = skiptowhite(arg);
 		if (gname_start == arg)
 		    return NULL;
-		gname = vim_strnsave(gname_start, (int)(arg - gname_start));
+		gname = vim_strnsave(gname_start, arg - gname_start);
 		if (gname == NULL)
 		    return NULL;
 		if (STRCMP(gname, "NONE") == 0)
@@ -4662,7 +4662,8 @@
 		    syn_id = syn_name2id(gname);
 		    for (i = curwin->w_s->b_syn_patterns.ga_len; --i >= 0; )
 			if (SYN_ITEMS(curwin->w_s)[i].sp_syn.id == syn_id
-			      && SYN_ITEMS(curwin->w_s)[i].sp_type == SPTYPE_START)
+			      && SYN_ITEMS(curwin->w_s)[i].sp_type
+							       == SPTYPE_START)
 			{
 			    *opt->sync_idx = i;
 			    break;
@@ -5656,7 +5657,7 @@
 	return NULL;
     }
     // store the pattern and compiled regexp program
-    if ((ci->sp_pattern = vim_strnsave(arg + 1, (int)(end - arg - 1))) == NULL)
+    if ((ci->sp_pattern = vim_strnsave(arg + 1, end - arg - 1)) == NULL)
 	return NULL;
 
     // Make 'cpoptions' empty, to avoid the 'l' flag
@@ -5836,8 +5837,9 @@
 	    if (!eap->skip)
 	    {
 		// store the pattern and compiled regexp program
-		if ((curwin->w_s->b_syn_linecont_pat = vim_strnsave(next_arg + 1,
-				      (int)(arg_end - next_arg - 1))) == NULL)
+		if ((curwin->w_s->b_syn_linecont_pat =
+			    vim_strnsave(next_arg + 1,
+				      arg_end - next_arg - 1)) == NULL)
 		{
 		    finished = TRUE;
 		    break;
@@ -6272,7 +6274,7 @@
     // isolate subcommand name
     for (subcmd_end = arg; ASCII_ISALPHA(*subcmd_end); ++subcmd_end)
 	;
-    subcmd_name = vim_strnsave(arg, (int)(subcmd_end - arg));
+    subcmd_name = vim_strnsave(arg, subcmd_end - arg);
     if (subcmd_name != NULL)
     {
 	if (eap->skip)		// skip error messages for all subcommands
diff --git a/src/term.c b/src/term.c
index 2f6e893..82b1126 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4086,11 +4086,11 @@
     }
 
 #if defined(MSWIN) && !defined(FEAT_GUI)
-    s = vim_strnsave(string, (int)STRLEN(string) + 1);
+    s = vim_strnsave(string, STRLEN(string) + 1);
 #else
 # ifdef VIMDLL
     if (!gui.in_use)
-	s = vim_strnsave(string, (int)STRLEN(string) + 1);
+	s = vim_strnsave(string, STRLEN(string) + 1);
     else
 # endif
 	s = vim_strsave(string);
diff --git a/src/terminal.c b/src/terminal.c
index 5514c73..5424574 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -3011,7 +3011,7 @@
     {
 	case VTERM_PROP_TITLE:
 	    strval = vim_strnsave((char_u *)value->string.str,
-						       (int)value->string.len);
+							    value->string.len);
 	    if (strval == NULL)
 		break;
 	    vim_free(term->tl_title);
@@ -3073,7 +3073,7 @@
 
 	case VTERM_PROP_CURSORCOLOR:
 	    strval = vim_strnsave((char_u *)value->string.str,
-						       (int)value->string.len);
+							    value->string.len);
 	    if (strval == NULL)
 		break;
 	    cursor_color_copy(&term->tl_cursor_color, strval);
diff --git a/src/undo.c b/src/undo.c
index c2fe819..7c1e597 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -849,7 +849,7 @@
 	{
 	    // Use same directory as the ffname,
 	    // "dir/name" -> "dir/.name.un~"
-	    undo_file_name = vim_strnsave(ffname, (int)(STRLEN(ffname) + 5));
+	    undo_file_name = vim_strnsave(ffname, STRLEN(ffname) + 5);
 	    if (undo_file_name == NULL)
 		break;
 	    p = gettail(undo_file_name);
diff --git a/src/usercmd.c b/src/usercmd.c
index cdc46a1..de49d41 100644
--- a/src/usercmd.c
+++ b/src/usercmd.c
@@ -676,7 +676,7 @@
     }
 
     if (arg != NULL)
-	*compl_arg = vim_strnsave(arg, (int)arglen);
+	*compl_arg = vim_strnsave(arg, arglen);
 # endif
     return OK;
 }
@@ -939,7 +939,7 @@
     {
 	if (ga_grow(gap, 1) != OK)
 	    goto fail;
-	if ((p = vim_strnsave(name, (int)name_len)) == NULL)
+	if ((p = vim_strnsave(name, name_len)) == NULL)
 	    goto fail;
 
 	cmd = USER_CMD_GA(gap, i);
diff --git a/src/userfunc.c b/src/userfunc.c
index e2658fe..bd229b4 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -2699,7 +2699,7 @@
 	    p = skip_type(ret_type);
 	    if (p > ret_type)
 	    {
-		ret_type = vim_strnsave(ret_type, (int)(p - ret_type));
+		ret_type = vim_strnsave(ret_type, p - ret_type);
 		p = skipwhite(p);
 	    }
 	    else
@@ -2972,12 +2972,12 @@
 		    // Ignore leading white space.
 		    p = skipwhite(p + 4);
 		    heredoc_trimmed = vim_strnsave(theline,
-			    (int)(skipwhite(theline) - theline));
+						 skipwhite(theline) - theline);
 		}
 		if (*p == NUL)
 		    skip_until = vim_strsave((char_u *)".");
 		else
-		    skip_until = vim_strnsave(p, (int)(skiptowhite(p) - p));
+		    skip_until = vim_strnsave(p, skiptowhite(p) - p);
 		do_concat = FALSE;
 		is_heredoc = TRUE;
 	    }
@@ -3002,9 +3002,9 @@
 			// Ignore leading white space.
 			p = skipwhite(p + 4);
 			heredoc_trimmed = vim_strnsave(theline,
-					  (int)(skipwhite(theline) - theline));
+						 skipwhite(theline) - theline);
 		    }
-		    skip_until = vim_strnsave(p, (int)(skiptowhite(p) - p));
+		    skip_until = vim_strnsave(p, skiptowhite(p) - p);
 		    do_concat = FALSE;
 		    is_heredoc = TRUE;
 		}
diff --git a/src/version.c b/src/version.c
index fc2269c..dcf1746 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    967,
+/**/
     966,
 /**/
     965,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index f59ec12..17c16d8 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1575,7 +1575,7 @@
     RETURN_OK_IF_SKIP(cctx);
     if ((isn = generate_instr(cctx, ISN_STRINGMEMBER)) == NULL)
 	return FAIL;
-    isn->isn_arg.string = vim_strnsave(name, (int)len);
+    isn->isn_arg.string = vim_strnsave(name, len);
 
     // check for dict type
     type = ((type_T **)stack->ga_data)[stack->ga_len - 1];
@@ -1671,7 +1671,7 @@
     // entries.  This is less efficient, but memory is cheap these days.
     lvar->lv_idx = cctx->ctx_locals_count++;
 
-    lvar->lv_name = vim_strnsave(name, (int)(len == 0 ? STRLEN(name) : len));
+    lvar->lv_name = vim_strnsave(name, len == 0 ? STRLEN(name) : len);
     lvar->lv_const = isConst;
     lvar->lv_type = type;
 
@@ -4627,7 +4627,7 @@
 	--p;
 
     varlen = p - arg;
-    name = vim_strnsave(arg, (int)varlen);
+    name = vim_strnsave(arg, varlen);
     if (name == NULL)
 	return NULL;
 
@@ -6268,7 +6268,7 @@
 	{
 	    if (p > start)
 	    {
-		generate_PUSHS(cctx, vim_strnsave(start, (int)(p - start)));
+		generate_PUSHS(cctx, vim_strnsave(start, p - start));
 		++count;
 	    }
 	    p += 2;