Mercurial > vim
comparison src/testdir/test_functions.vim @ 32533:aa64fdad1f60 v9.0.1598
patch 9.0.1598: screenchar() and others are wrong with DBCS 'encoding'
Commit: https://github.com/vim/vim/commit/47eec6716b8621fd43bac8ecc9c19089df26705e
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu Jun 1 20:26:55 2023 +0100
patch 9.0.1598: screenchar() and others are wrong with DBCS 'encoding'
Problem: screenchar(), screenchars() and screenstring() do not work
properly when 'encoding' is set to a double-byte encoding.
Solution: Fix the way the bytes of the characters are obtained.
(issue #12469)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 01 Jun 2023 21:30:03 +0200 |
parents | d6055989fa27 |
children | 5d8cff99a027 |
comparison
equal
deleted
inserted
replaced
32532:26aa788bed3f | 32533:aa64fdad1f60 |
---|---|
3215 " Test for screenattr(), screenchar() and screenchars() functions | 3215 " Test for screenattr(), screenchar() and screenchars() functions |
3216 func Test_screen_functions() | 3216 func Test_screen_functions() |
3217 call assert_equal(-1, screenattr(-1, -1)) | 3217 call assert_equal(-1, screenattr(-1, -1)) |
3218 call assert_equal(-1, screenchar(-1, -1)) | 3218 call assert_equal(-1, screenchar(-1, -1)) |
3219 call assert_equal([], screenchars(-1, -1)) | 3219 call assert_equal([], screenchars(-1, -1)) |
3220 | |
3221 " Run this in a separate Vim instance to avoid messing up. | |
3222 let after =<< trim [CODE] | |
3223 scriptencoding utf-8 | |
3224 call setline(1, '口') | |
3225 redraw | |
3226 call assert_equal(0, screenattr(1, 1)) | |
3227 call assert_equal(char2nr('口'), screenchar(1, 1)) | |
3228 call assert_equal([char2nr('口')], screenchars(1, 1)) | |
3229 call assert_equal('口', screenstring(1, 1)) | |
3230 call writefile(v:errors, 'Xresult') | |
3231 qall! | |
3232 [CODE] | |
3233 | |
3234 let encodings = ['utf-8', 'cp932', 'cp936', 'cp949', 'cp950'] | |
3235 if !has('win32') | |
3236 let encodings += ['euc-jp'] | |
3237 endif | |
3238 for enc in encodings | |
3239 let msg = 'enc=' .. enc | |
3240 if RunVim([], after, $'--clean --cmd "set encoding={enc}"') | |
3241 call assert_equal([], readfile('Xresult'), msg) | |
3242 endif | |
3243 call delete('Xresult') | |
3244 endfor | |
3220 endfunc | 3245 endfunc |
3221 | 3246 |
3222 " Test for getcurpos() and setpos() | 3247 " Test for getcurpos() and setpos() |
3223 func Test_getcurpos_setpos() | 3248 func Test_getcurpos_setpos() |
3224 new | 3249 new |