0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.2.342

Problem:    Popup menu displayed wrong in 'rightleft' mode when there are
            multi-byte characters.
Solution:   Adjust the column computations. (Dominique Pelle)
This commit is contained in:
Bram Moolenaar 2010-01-19 18:06:03 +01:00
parent e4ebd29ea9
commit d836bb90ab
2 changed files with 26 additions and 9 deletions

View File

@ -345,21 +345,36 @@ pum_redraw()
if (st != NULL)
{
char_u *rt = reverse_text(st);
char_u *rt_saved = rt;
int len, j;
if (rt != NULL)
{
len = (int)STRLEN(rt);
if (len > pum_width)
char_u *rt_start = rt;
int size;
size = vim_strsize(rt);
if (size > pum_width)
{
for (j = pum_width; j < len; ++j)
do
{
size -= has_mbyte
? (*mb_ptr2cells)(rt) : 1;
mb_ptr_adv(rt);
len = pum_width;
} while (size > pum_width);
if (size < pum_width)
{
/* Most left character requires
* 2-cells but only 1 cell is
* available on screen. Put a
* '<' on the left of the pum
* item */
*(--rt) = '<';
size++;
}
}
screen_puts_len(rt, len, row,
col - len + 1, attr);
vim_free(rt_saved);
screen_puts_len(rt, (int)STRLEN(rt),
row, col - size + 1, attr);
vim_free(rt_start);
}
vim_free(st);
}

View File

@ -681,6 +681,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
342,
/**/
341,
/**/