mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
patch 9.1.1257: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw()
Problem: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw(). Solution: Change vim_strsize() to mb_string2cells() (zeertzjq). Since vim_strsize() uses ptr2cells() for the cell width of each char, it is strange to mix it with mb_ptr2cells(), which is used both just below and in pum_screen_puts_with_attr(), and screen_puts_len() also uses something similar. Meanwhile mb_string2cells() uses mb_ptr2cells() for the cell width of each char. Note that the vim_strsize() and mb_string2cells() actually return the same value here, as the transstr() above makes sure the string only contains printable chars, and ptr2cells() and mb_ptr2cells() only return different values for unprintable chars. closes: #17003 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
0dc9a0bc60
commit
90e52490b3
@ -731,7 +731,7 @@ pum_redraw(void)
|
||||
char_u *old_rt = NULL;
|
||||
char_u *orig_rt = NULL;
|
||||
|
||||
cells = vim_strsize(rt);
|
||||
cells = mb_string2cells(rt, -1);
|
||||
need_ellipsis = p_pmw > ellipsis_width
|
||||
&& pum_width == p_pmw
|
||||
&& cells > pum_width;
|
||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1257,
|
||||
/**/
|
||||
1256,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user