From: Yasuhiro Matsumoto Date: Tue, 10 Jan 2023 16:03:08 +0000 (+0000) Subject: patch 9.0.1171: screen is not redrawn after using setcellwidths() X-Git-Tag: v9.0.1171 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2bc849ff811059d25310399f982c6706faa7eb35;p=vim 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) --- diff --git a/src/mbyte.c b/src/mbyte.c index aa2b177ce..1570cef23 100644 --- a/src/mbyte.c +++ b/src/mbyte.c @@ -5742,6 +5742,7 @@ f_setcellwidths(typval_T *argvars, typval_T *rettv UNUSED) } vim_free(cw_table_save); + redraw_all_later(UPD_CLEAR); } void diff --git a/src/testdir/dumps/Test_setcellwidths_dump_1.dump b/src/testdir/dumps/Test_setcellwidths_dump_1.dump new file mode 100644 index 000000000..0bb2788f1 --- /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| diff --git a/src/testdir/dumps/Test_setcellwidths_dump_2.dump b/src/testdir/dumps/Test_setcellwidths_dump_2.dump new file mode 100644 index 000000000..f7b4b0f33 --- /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| diff --git a/src/testdir/test_utf8.vim b/src/testdir/test_utf8.vim index bb99cb3e6..935af7ebf 100644 --- 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]])\") + call VerifyScreenDump(buf, 'Test_setcellwidths_dump_2', {}) + + call StopVimInTerminal(buf) +endfunc + func Test_print_overlong() " Text with more composing characters than MB_MAXBYTES. new diff --git a/src/version.c b/src/version.c index b3efaabc4..da397ee4b 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1171, /**/ 1170, /**/