# HG changeset patch # User Christian Brabandt # Date 1520086505 -3600 # Node ID 53f15c99a9fd0dfbe07acbbf67f30e9806d2e1aa # Parent 00577b3b9aae69809a5cfd9a01f193c756c45b46 patch 8.0.1557: printf() does not work with only one argument commit https://github.com/vim/vim/commit/c71807db9c1821baf86796cd76952df36ff1a29a Author: Bram Moolenaar Date: Sat Mar 3 15:06:52 2018 +0100 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 https://github.com/vim/vim/issues/2687) diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -738,7 +738,7 @@ static struct fst {"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 --- a/src/testdir/test_expr.vim +++ b/src/testdir/test_expr.vim @@ -131,6 +131,9 @@ func Test_option_value() 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 --- a/src/version.c +++ b/src/version.c @@ -779,6 +779,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1557, +/**/ 1556, /**/ 1555,