patch 8.1.2083: multi-byte chars do not work properly with "%.*S" in printf()
Problem: Multi-byte chars do not work properly with "%.*S" in printf().
Solution: Use mb_ptr2cells(). Daniel Hahler, closes #4989)
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index 365a813..253cd49 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -248,6 +248,9 @@
call assert_equal('abc ', printf('%-4s', 'abc'))
call assert_equal('abc ', printf('%-4S', 'abc'))
+ call assert_equal('🐍', printf('%.2S', '🐍🐍'))
+ call assert_equal('', printf('%.1S', '🐍🐍'))
+
call assert_equal('1%', printf('%d%%', 1))
endfunc