Problem: printf() does not work with 64 bit numbers.
Solution: use the "L" length modifier. (Ken Takata)
default: break;
}
+# if defined(FEAT_EVAL) && defined(FEAT_NUM64)
+ switch (fmt_spec)
+ {
+ case 'd': case 'u': case 'o': case 'x': case 'X':
+ if (tvs != NULL && length_modifier == '\0')
+ length_modifier = 'L';
+ }
+# endif
+
/* get parameter value, do initial processing */
switch (fmt_spec)
{
call assert_equal("abcdefgi", &cpo)
set cpo&vim
endfunc
+
+function Test_printf_64bit()
+ if has('num64')
+ call assert_equal("123456789012345", printf('%d', 123456789012345))
+ endif
+endfunc
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2029,
/**/
2028,
/**/