patch 9.1.0716: resetting setcellwidth() doesn't update the screen
Problem: resetting setcellwidth() doesn't update the screen
Solution: Redraw after clearing the cellwidth table (Ken Takata)
closes: #15628
Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/mbyte.c b/src/mbyte.c
index d8c47ac..fa67032 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -5644,7 +5644,7 @@
// Clearing the table.
VIM_CLEAR(cw_table);
cw_table_size = 0;
- return;
+ goto done;
}
ptrs = ALLOC_MULT(listitem_T *, l->lv_len);
@@ -5756,6 +5756,7 @@
}
vim_free(cw_table_save);
+done:
changed_window_setting_all();
redraw_all_later(UPD_CLEAR);
}
diff --git a/src/testdir/test_utf8.vim b/src/testdir/test_utf8.vim
index 0f46240..0314fcd 100644
--- a/src/testdir/test_utf8.vim
+++ b/src/testdir/test_utf8.vim
@@ -228,6 +228,9 @@
call setcellwidths([[0x2103, 0x2103, 2]])
redraw
call assert_equal(19, wincol())
+ call setcellwidths([])
+ redraw
+ call assert_equal((aw == 'single') ? 10 : 19, wincol())
endfor
set ambiwidth& isprint&
diff --git a/src/version.c b/src/version.c
index 536c1fb..80da0e3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 716,
+/**/
715,
/**/
714,