vim-patch:9.0.1633: duplicate code for converting float to string

Problem:    Duplicate code for converting float to string.
Solution:   Use tv_get_string(). (closes vim/vim#12521)

19dfa276c3
This commit is contained in:
zeertzjq
2023-09-17 11:05:36 +08:00
parent ac0fda2e46
commit a1f0f0b2bc

View File

@@ -949,8 +949,7 @@ int skip_expr(char **pp, evalarg_T *const evalarg)
/// Convert "tv" to a string. /// Convert "tv" to a string.
/// ///
/// @param convert when true convert a List into a sequence of lines and convert /// @param convert when true convert a List into a sequence of lines.
/// a Float to a String.
/// ///
/// @return an allocated string. /// @return an allocated string.
static char *typval2string(typval_T *tv, bool convert) static char *typval2string(typval_T *tv, bool convert)
@@ -967,18 +966,12 @@ static char *typval2string(typval_T *tv, bool convert)
ga_append(&ga, NUL); ga_append(&ga, NUL);
return (char *)ga.ga_data; return (char *)ga.ga_data;
} }
if (convert && tv->v_type == VAR_FLOAT) {
char numbuf[NUMBUFLEN];
vim_snprintf(numbuf, NUMBUFLEN, "%g", tv->vval.v_float);
return xstrdup(numbuf);
}
return xstrdup(tv_get_string(tv)); return xstrdup(tv_get_string(tv));
} }
/// Top level evaluation function, returning a string. /// Top level evaluation function, returning a string.
/// ///
/// @param convert when true convert a List into a sequence of lines and convert /// @param convert when true convert a List into a sequence of lines.
/// a Float to a String.
/// ///
/// @return pointer to allocated memory, or NULL for failure. /// @return pointer to allocated memory, or NULL for failure.
char *eval_to_string(char *arg, bool convert) char *eval_to_string(char *arg, bool convert)