Mercurial > vim
changeset 31678:9e1062b4aa94 v9.0.1171
patch 9.0.1171: screen is not redrawn after using setcellwidths()
Commit: https://github.com/vim/vim/commit/2bc849ff811059d25310399f982c6706faa7eb35
Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Date: Tue Jan 10 16:03:08 2023 +0000
patch 9.0.1171: screen is not redrawn after using setcellwidths()
Problem: Screen is not redrawn after using setcellwidths().
Solution: Redraw the screen when the cell widths have changed. (Yasuhiro
Matsumoto, closes #11800)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 10 Jan 2023 17:15:02 +0100 |
parents | 93408970ffac |
children | ba5b5ed7d62c |
files | src/mbyte.c src/testdir/dumps/Test_setcellwidths_dump_1.dump src/testdir/dumps/Test_setcellwidths_dump_2.dump src/testdir/test_utf8.vim src/version.c |
diffstat | 5 files changed, 32 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/mbyte.c +++ b/src/mbyte.c @@ -5742,6 +5742,7 @@ f_setcellwidths(typval_T *argvars, typva } vim_free(cw_table_save); + redraw_all_later(UPD_CLEAR); } void
new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_setcellwidths_dump_1.dump @@ -0,0 +1,6 @@ +>+0&#ffffff0|D|e|s|k|t|o|p| @66 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|,|1| @10|A|l@1|
new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_setcellwidths_dump_2.dump @@ -0,0 +1,6 @@ +>+0&#ffffff0| |D|e|s|k|t|o|p| @65 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|,|1| @10|A|l@1|
--- a/src/testdir/test_utf8.vim +++ b/src/testdir/test_utf8.vim @@ -2,6 +2,7 @@ source check.vim source view_util.vim +source screendump.vim " Visual block Insert adjusts for multi-byte char func Test_visual_block_insert() @@ -198,6 +199,22 @@ func Test_setcellwidths() call setcellwidths([]) endfunc +func Test_setcellwidths_dump() + CheckRunVimInTerminal + + let lines =<< trim END + call setline(1, "\ue5ffDesktop") + END + call writefile(lines, 'XCellwidths', 'D') + let buf = RunVimInTerminal('-S XCellwidths', {'rows': 6}) + call VerifyScreenDump(buf, 'Test_setcellwidths_dump_1', {}) + + call term_sendkeys(buf, ":call setcellwidths([[0xe5ff, 0xe5ff, 2]])\<CR>") + call VerifyScreenDump(buf, 'Test_setcellwidths_dump_2', {}) + + call StopVimInTerminal(buf) +endfunc + func Test_print_overlong() " Text with more composing characters than MB_MAXBYTES. new