diff src/testdir/test_utf8.vim @ 21971:0bc43a704f56 v8.2.1535

patch 8.2.1535: it is not possible to specify cell widths of characters Commit: https://github.com/vim/vim/commit/08aac3c6192f0103cb87e280270a32b50e653be1 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 28 21:04:24 2020 +0200 patch 8.2.1535: it is not possible to specify cell widths of characters Problem: It is not possible to specify cell widths of characters. Solution: Add setcellwidths().
author Bram Moolenaar <Bram@vim.org>
date Fri, 28 Aug 2020 21:15:03 +0200
parents 6a4806e326dd
children 2030f8267db9
line wrap: on
line diff
--- a/src/testdir/test_utf8.vim
+++ b/src/testdir/test_utf8.vim
@@ -145,4 +145,39 @@ func Test_screenchar_utf8()
   bwipe!
 endfunc
 
+func Test_setcellwidths()
+  call setcellwidths([
+        \ [0x1330, 0x1330, 2],
+        \ [0x1337, 0x1339, 2],
+        \ [9999, 10000, 1],
+        \])
+
+  call assert_equal(2, strwidth("\u1330"))
+  call assert_equal(1, strwidth("\u1336"))
+  call assert_equal(2, strwidth("\u1337"))
+  call assert_equal(2, strwidth("\u1339"))
+  call assert_equal(1, strwidth("\u133a"))
+
+  call setcellwidths([])
+
+  call assert_fails('call setcellwidths(1)', 'E714:')
+
+  call assert_fails('call setcellwidths([1, 2, 0])', 'E1109:')
+
+  call assert_fails('call setcellwidths([[0x101]])', 'E1110:')
+  call assert_fails('call setcellwidths([[0x101, 0x102]])', 'E1110:')
+  call assert_fails('call setcellwidths([[0x101, 0x102, 1, 4]])', 'E1110:')
+  call assert_fails('call setcellwidths([["a"]])', 'E1110:')
+
+  call assert_fails('call setcellwidths([[0x102, 0x101, 1]])', 'E1111:')
+
+  call assert_fails('call setcellwidths([[0x101, 0x102, 0]])', 'E1112:')
+  call assert_fails('call setcellwidths([[0x101, 0x102, 3]])', 'E1112:')
+
+  call assert_fails('call setcellwidths([[0x111, 0x122, 1], [0x115, 0x116, 2]])', 'E1113:')
+  call assert_fails('call setcellwidths([[0x111, 0x122, 1], [0x122, 0x123, 2]])', 'E1113:')
+
+  call assert_fails('call setcellwidths([[0x33, 0x44, 2]])', 'E1114:')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab