Skip to content

Commit 5906255

Browse files
zeertzjqhuangyingw
authored andcommitted
vim-patch:9.1.0444: Not enough tests for getregion() with multibyte chars (neovim#29000)
Problem: Not enough tests for getregion() with multibyte chars. Solution: Add a few more tests (zeertzjq). closes: vim/vim#14844 vim/vim@dff55a3
1 parent 304f97f commit 5906255

File tree

4 files changed

+68
-3
lines changed

4 files changed

+68
-3
lines changed

runtime/doc/builtin.txt

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

runtime/lua/vim/_meta/vimfn.lua

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/nvim/eval.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4372,7 +4372,8 @@ M.funcs = {
43724372
43734373
type Specify the region's selection type.
43744374
See |getregtype()| for possible values,
4375-
except it cannot be an empty string.
4375+
except that the width can be omitted
4376+
and an empty string cannot be used.
43764377
(default: "v")
43774378
43784379
exclusive If |TRUE|, use exclusive selection

test/old/testdir/test_visual.vim

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2594,6 +2594,7 @@ func Test_getregion_after_yank()
25942594
call feedkeys("gg0ll\<C-V>jj$y", 'tx')
25952595
call assert_equal(1, g:checked)
25962596
call Check_Results(getregtype('"'))
2597+
call assert_equal(g:expected_region, getreg('"', v:true, v:true))
25972598

25982599
let g:expected_region = ['bc', 'fg', 'mn']
25992600
let g:expected_regionpos = [
@@ -2605,6 +2606,67 @@ func Test_getregion_after_yank()
26052606
call feedkeys("gg0l\<C-V>jjly", 'tx')
26062607
call assert_equal(1, g:checked)
26072608
call Check_Results(getregtype('"'))
2609+
call assert_equal(g:expected_region, getreg('"', v:true, v:true))
2610+
2611+
bwipe!
2612+
2613+
new
2614+
let lines = ['asdfghjkl', '«口=口»', 'qwertyuiop', '口口=口口', 'zxcvbnm']
2615+
call setline(1, lines)
2616+
2617+
let g:expected_region = lines
2618+
let g:expected_regionpos = [
2619+
\ [[bufnr('%'), 1, 1, 0], [bufnr('%'), 1, 9, 0]],
2620+
\ [[bufnr('%'), 2, 1, 0], [bufnr('%'), 2, 11, 0]],
2621+
\ [[bufnr('%'), 3, 1, 0], [bufnr('%'), 3, 10, 0]],
2622+
\ [[bufnr('%'), 4, 1, 0], [bufnr('%'), 4, 13, 0]],
2623+
\ [[bufnr('%'), 5, 1, 0], [bufnr('%'), 5, 7, 0]],
2624+
\ ]
2625+
let g:checked = 0
2626+
call feedkeys('ggyG', 'tx')
2627+
call assert_equal(1, g:checked)
2628+
call Check_Results(getregtype('"'))
2629+
call assert_equal(g:expected_region, getreg('"', v:true, v:true))
2630+
2631+
let g:expected_region = ['=口»', 'qwertyuiop', '口口=口']
2632+
let g:expected_regionpos = [
2633+
\ [[bufnr('%'), 2, 6, 0], [bufnr('%'), 2, 11, 0]],
2634+
\ [[bufnr('%'), 3, 1, 0], [bufnr('%'), 3, 10, 0]],
2635+
\ [[bufnr('%'), 4, 1, 0], [bufnr('%'), 4, 10, 0]],
2636+
\ ]
2637+
let g:checked = 0
2638+
call feedkeys('2gg02lv2j2ly', 'tx')
2639+
call assert_equal(1, g:checked)
2640+
call Check_Results(getregtype('"'))
2641+
call assert_equal(g:expected_region, getreg('"', v:true, v:true))
2642+
2643+
let g:expected_region = ['asdf', '«口=', 'qwer', '口口', 'zxcv']
2644+
let g:expected_regionpos = [
2645+
\ [[bufnr('%'), 1, 1, 0], [bufnr('%'), 1, 4, 0]],
2646+
\ [[bufnr('%'), 2, 1, 0], [bufnr('%'), 2, 6, 0]],
2647+
\ [[bufnr('%'), 3, 1, 0], [bufnr('%'), 3, 4, 0]],
2648+
\ [[bufnr('%'), 4, 1, 0], [bufnr('%'), 4, 6, 0]],
2649+
\ [[bufnr('%'), 5, 1, 0], [bufnr('%'), 5, 4, 0]],
2650+
\ ]
2651+
let g:checked = 0
2652+
call feedkeys("G0\<C-V>3l4ky", 'tx')
2653+
call assert_equal(1, g:checked)
2654+
call Check_Results(getregtype('"'))
2655+
call assert_equal(g:expected_region, getreg('"', v:true, v:true))
2656+
2657+
let g:expected_region = ['ghjkl', '口»', 'tyuiop', '=口口', 'bnm']
2658+
let g:expected_regionpos = [
2659+
\ [[bufnr('%'), 1, 5, 0], [bufnr('%'), 1, 9, 0]],
2660+
\ [[bufnr('%'), 2, 7, 0], [bufnr('%'), 2, 11, 0]],
2661+
\ [[bufnr('%'), 3, 5, 0], [bufnr('%'), 3, 10, 0]],
2662+
\ [[bufnr('%'), 4, 7, 0], [bufnr('%'), 4, 13, 0]],
2663+
\ [[bufnr('%'), 5, 5, 0], [bufnr('%'), 5, 7, 0]],
2664+
\ ]
2665+
let g:checked = 0
2666+
call feedkeys("G04l\<C-V>$4ky", 'tx')
2667+
call assert_equal(1, g:checked)
2668+
call Check_Results(getregtype('"'))
2669+
call assert_equal(g:expected_region, getreg('"', v:true, v:true))
26082670

26092671
bwipe!
26102672

0 commit comments

Comments
 (0)