patch 8.2.1461: Vim9: string indexes are counted in bytes
Problem: Vim9: string indexes are counted in bytes.
Solution: Use character indexes. (closes #6574)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 15c26fd..182295c 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2075,12 +2075,28 @@
enddef
def Test_expr7_subscript()
- let text = 'abcdef'
- assert_equal('', text[-1])
- assert_equal('a', text[0])
- assert_equal('e', text[4])
- assert_equal('f', text[5])
- assert_equal('', text[6])
+ let lines =<< trim END
+ let text = 'abcdef'
+ assert_equal('', text[-1])
+ assert_equal('a', text[0])
+ assert_equal('e', text[4])
+ assert_equal('f', text[5])
+ assert_equal('', text[6])
+
+ text = 'ábçdëf'
+ assert_equal('', text[-999])
+ assert_equal('', text[-1])
+ assert_equal('á', text[0])
+ assert_equal('b', text[1])
+ assert_equal('ç', text[2])
+ assert_equal('d', text[3])
+ assert_equal('ë', text[4])
+ assert_equal('f', text[5])
+ assert_equal('', text[6])
+ assert_equal('', text[999])
+ END
+ CheckDefSuccess(lines)
+ CheckScriptSuccess(['vim9script'] + lines)
enddef
def Test_expr7_subscript_linebreak()