patch 8.0.1557: printf() does not work with only one argument
Problem: printf() does not work with only one argument. (Daniel Hahler)
Solution: Allow using just the format. (Ken Takata, closes #2687)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 5b684bd..e866f4c 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -738,7 +738,7 @@
{"pow", 2, 2, f_pow},
#endif
{"prevnonblank", 1, 1, f_prevnonblank},
- {"printf", 2, 19, f_printf},
+ {"printf", 1, 19, f_printf},
{"pumvisible", 0, 0, f_pumvisible},
#ifdef FEAT_PYTHON3
{"py3eval", 1, 1, f_py3eval},
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index c47bc22..c14b6e6 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -131,6 +131,9 @@
endfunc
function Test_printf_misc()
+ call assert_equal('123', printf('123'))
+ call assert_fails("call printf('123', 3)", "E767:")
+
call assert_equal('123', printf('%d', 123))
call assert_equal('123', printf('%i', 123))
call assert_equal('123', printf('%D', 123))
diff --git a/src/version.c b/src/version.c
index e1f406a..7d54185 100644
--- a/src/version.c
+++ b/src/version.c
@@ -779,6 +779,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1557,
+/**/
1556,
/**/
1555,