# HG changeset patch # User Bram Moolenaar # Date 1591556403 -7200 # Node ID d9a2e5dcfd9fb8287921594e271eb0f9469d30ba # Parent 020a100bfa9253fd851af6021a515b8a5cd8cd10 patch 8.2.0928: many type casts are used for vim_strnsave() Commit: https://github.com/vim/vim/commit/df44a27b53586fccfc6a3aedc89061fdd9a515ff Author: Bram Moolenaar Date: Sun Jun 7 20:49:05 2020 +0200 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 --- a/src/autocmd.c +++ b/src/autocmd.c @@ -763,7 +763,7 @@ au_event_disable(char *what) 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 @@ au_get_grouparg(char_u **argp) ; 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 --- a/src/channel.c +++ b/src/channel.c @@ -2906,7 +2906,7 @@ may_invoke_callback(channel_T *channel, { // 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 @@ channel_read_block( { // 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 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -2555,7 +2555,7 @@ ExpandUserDefined( { 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 --- a/src/dict.c +++ b/src/dict.c @@ -779,7 +779,7 @@ get_literal_key(char_u **arg, typval_T * 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 --- a/src/diff.c +++ b/src/diff.c @@ -1301,7 +1301,7 @@ ex_diffpatch(exarg_T *eap) 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 --- a/src/digraph.c +++ b/src/digraph.c @@ -2387,10 +2387,10 @@ ex_loadkeymap(exarg_T *eap) { 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 --- a/src/eval.c +++ b/src/eval.c @@ -3139,7 +3139,7 @@ eval_index( 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 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -5521,7 +5521,7 @@ find_some_match(typval_T *argvars, typva 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 @@ find_some_match(typval_T *argvars, typva 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 @@ f_trim(typval_T *argvars, typval_T *rett } } } - 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 --- a/src/highlight.c +++ b/src/highlight.c @@ -906,7 +906,7 @@ do_highlight( 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 --- a/src/misc2.c +++ b/src/misc2.c @@ -1291,7 +1291,7 @@ vim_strsave(char_u *string) * 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 @@ vim_strsave_up(char_u *string) * 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 --- a/src/proto/misc2.pro +++ b/src/proto/misc2.pro @@ -32,14 +32,14 @@ void *mem_realloc(void *ptr, size_t size 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 --- a/src/syntax.c +++ b/src/syntax.c @@ -5097,7 +5097,7 @@ syn_cmd_region( 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 @@ syn_cmd_sync(exarg_T *eap, int syncing U 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 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 928, +/**/ 927, /**/ 926,