patch 9.0.1515: reverse() does not work for a String
Problem: reverse() does not work for a String.
Solution: Implement reverse() for a String. (Yegappan Lakshmanan,
closes #12179)
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index e32c4f5..11cfcc9 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -3469,4 +3469,21 @@
call StopVimInTerminal(buf)
endfunc
+" Test for the reverse() function with a string
+func Test_string_reverse()
+ call assert_equal('', reverse(test_null_string()))
+ for [s1, s2] in [['', ''], ['a', 'a'], ['ab', 'ba'], ['abc', 'cba'],
+ \ ['abcd', 'dcba'], ['«-«-»-»', '»-»-«-«'],
+ \ ['🇦', '🇦'], ['🇦🇧', '🇧🇦'], ['🇦🇧🇨', '🇨🇧🇦'],
+ \ ['🇦«ðŸ‡§-🇨»ðŸ‡©', '🇩»ðŸ‡¨-🇧«ðŸ‡¦']]
+ call assert_equal(s2, reverse(s1))
+ endfor
+
+ " test in latin1 encoding
+ let save_enc = &encoding
+ set encoding=latin1
+ call assert_equal('dcba', reverse('abcd'))
+ let &encoding = save_enc
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab