| To: vim-dev@vim.org |
| Subject: Patch 7.2.342 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.2.342 |
| Problem: Popup menu displayed wrong in 'rightleft' mode when there are |
| multi-byte characters. |
| Solution: Adjust the column computations. (Dominique Pelle) |
| Files: src/popupmnu.c |
| |
| |
| |
| |
| |
| *** 345,365 **** |
| 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) |
| { |
| ! for (j = pum_width; j < len; ++j) |
| mb_ptr_adv(rt); |
| ! len = pum_width; |
| } |
| ! screen_puts_len(rt, len, row, |
| ! col - len + 1, attr); |
| ! vim_free(rt_saved); |
| } |
| vim_free(st); |
| } |
| --- 345,380 ---- |
| if (st != NULL) |
| { |
| char_u *rt = reverse_text(st); |
| |
| if (rt != NULL) |
| { |
| ! char_u *rt_start = rt; |
| ! int size; |
| ! |
| ! size = vim_strsize(rt); |
| ! if (size > pum_width) |
| { |
| ! do |
| ! { |
| ! size -= has_mbyte |
| ! ? (*mb_ptr2cells)(rt) : 1; |
| mb_ptr_adv(rt); |
| ! } 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, (int)STRLEN(rt), |
| ! row, col - size + 1, attr); |
| ! vim_free(rt_start); |
| } |
| vim_free(st); |
| } |
| |
| |
| |
| *** 683,684 **** |
| --- 683,686 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 342, |
| /**/ |
| |
| -- |
| I have a watch cat! Just break in and she'll watch. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |