diff src/message.c @ 19615:2aaef1547255 v8.2.0364

patch 8.2.0364: printf test failing on Haiku Commit: https://github.com/vim/vim/commit/693e80e93897aff3b07a1ef12b68a6527702f3d7 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 8 18:41:09 2020 +0100 patch 8.2.0364: printf test failing on Haiku Problem: Printf test failing on Haiku. Solution: Make a difference between int and short. (Dominique Pelle, closes #5749)
author Bram Moolenaar <Bram@vim.org>
date Sun, 08 Mar 2020 18:45:03 +0100
parents b38d73f36467
children d64f403289db
line wrap: on
line diff
--- a/src/message.c
+++ b/src/message.c
@@ -4722,9 +4722,13 @@ vim_vsnprintf_typval(
 			    // signed
 			    switch (length_modifier)
 			    {
-			    case '\0':
+			    case '\0': str_arg_l += sprintf(
+						 tmp + str_arg_l, f,
+						 int_arg);
+				       break;
 			    case 'h': str_arg_l += sprintf(
-						 tmp + str_arg_l, f, int_arg);
+						 tmp + str_arg_l, f,
+						 (short)int_arg);
 				      break;
 			    case 'l': str_arg_l += sprintf(
 						tmp + str_arg_l, f, long_arg);
@@ -4739,9 +4743,13 @@ vim_vsnprintf_typval(
 			    // unsigned
 			    switch (length_modifier)
 			    {
-			    case '\0':
+			    case '\0': str_arg_l += sprintf(
+						tmp + str_arg_l, f,
+						uint_arg);
+				       break;
 			    case 'h': str_arg_l += sprintf(
-						tmp + str_arg_l, f, uint_arg);
+						tmp + str_arg_l, f,
+						(unsigned short)uint_arg);
 				      break;
 			    case 'l': str_arg_l += sprintf(
 					       tmp + str_arg_l, f, ulong_arg);