Mercurial > vim
view src/testdir/test_mksession_utf8.vim @ 32865:8665cf0eab86 v9.0.1742
patch 9.0.1742: wrong curswant when clicking on second cell of double-width char
Commit: https://github.com/vim/vim/commit/9994160bfe74501886bbbf5631aec8ea2ae05991
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Aug 19 13:08:50 2023 +0200
patch 9.0.1742: wrong curswant when clicking on second cell of double-width char
Problem: Wrong curswant when clicking and the second cell of a
double-width char.
Solution: Don't copy virtcol of the first char to the second one.
closes: #12842
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 19 Aug 2023 13:15:05 +0200 |
parents | 6990c1160ea5 |
children |
line wrap: on
line source
" Test for :mksession, :mkview and :loadview in utf-8 encoding set encoding=utf-8 scriptencoding utf-8 source check.vim CheckFeature mksession func Test_mksession_utf8() tabnew let wrap_save = &wrap set sessionoptions=buffers splitbelow fileencoding=utf-8 call setline(1, [ \ 'start:', \ 'no multibyte chAracter', \ ' one leaDing tab', \ ' four leadinG spaces', \ 'two consecutive tabs', \ 'two tabs in one line', \ 'one … multibyteCharacter', \ 'a “b” two multiByte characters', \ '“c”1€ three mulTibyte characters' \ ]) let tmpfile = tempname() exec 'w! ' . tmpfile /^start: set wrap vsplit norm! j16| split norm! j16| split norm! j16| split norm! j8| split norm! j8| split norm! j16| split norm! j16| split norm! j16| wincmd l set nowrap /^start: norm! j16|3zl split norm! j016|3zl split norm! j016|3zl split norm! j08|3zl split norm! j08|3zl split norm! j016|3zl split norm! j016|3zl split norm! j016|3zl split call wincol() mksession! test_mks.out let li = filter(readfile('test_mks.out'), 'v:val =~# "\\(^ *normal! 0\\|^ *exe ''normal!\\)"') let expected =<< trim [DATA] normal! 016| normal! 016| normal! 016| normal! 08| normal! 08| normal! 016| normal! 016| normal! 016| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| exe 'normal! ' . s:c . '|zs' . 8 . '|' normal! 08| exe 'normal! ' . s:c . '|zs' . 8 . '|' normal! 08| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| exe 'normal! ' . s:c . '|zs' . 16 . '|' normal! 016| [DATA] call assert_equal(expected, li) tabclose! call delete('test_mks.out') call delete(tmpfile) let &wrap = wrap_save set sessionoptions& splitbelow& fileencoding& endfunc " vim: shiftwidth=2 sts=2 expandtab