strings: use (u)int16_t for %h printf format

This commit is contained in:
Jan Edmund Lazo
2018-12-16 03:23:00 -05:00
parent ae6848cd12
commit 4680ca29f1

View File

@@ -1001,8 +1001,8 @@ int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap,
switch (length_modifier) { switch (length_modifier) {
case '\0': case '\0':
case 'h': { case 'h': {
// char and short arguments are passed as int // char and short arguments are passed as int16_t
arg = (tvs ? (int)tv_nr(tvs, &arg_idx) : va_arg(ap, int)); arg = (int16_t)(tvs ? tv_nr(tvs, &arg_idx) : va_arg(ap, int));
break; break;
} }
case 'l': { case 'l': {
@@ -1033,8 +1033,8 @@ int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap,
switch (length_modifier) { switch (length_modifier) {
case '\0': case '\0':
case 'h': { case 'h': {
uarg = (tvs uarg = (uint16_t)(tvs
? (unsigned)tv_nr(tvs, &arg_idx) ? tv_nr(tvs, &arg_idx)
: va_arg(ap, unsigned)); : va_arg(ap, unsigned));
break; break;
} }