| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.553 |
| 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.3.553 |
| Problem: With double-width characters and 'listchars' containing "precedes" |
| the text is displayed one cell off. |
| Solution: Check for double-width character being overwritten by the |
| "precedes" character. (Yasuhiro Matsumoto) |
| Files: src/screen.c |
| |
| |
| |
| |
| |
| *** 89,94 **** |
| --- 89,97 ---- |
| |
| #include "vim.h" |
| |
| + #define MB_FILLER_CHAR '<' /* character used when a double-width character |
| + * doesn't fit. */ |
| + |
| /* |
| * The attributes that are actually active for writing to the screen. |
| */ |
| |
| *** 4016,4022 **** |
| if (n_skip > 0 && mb_l > 1 && n_extra == 0) |
| { |
| n_extra = 1; |
| ! c_extra = '<'; |
| c = ' '; |
| if (area_attr == 0 && search_attr == 0) |
| { |
| --- 4019,4025 ---- |
| if (n_skip > 0 && mb_l > 1 && n_extra == 0) |
| { |
| n_extra = 1; |
| ! c_extra = MB_FILLER_CHAR; |
| c = ' '; |
| if (area_attr == 0 && search_attr == 0) |
| { |
| |
| *** 4576,4581 **** |
| --- 4579,4593 ---- |
| c = lcs_prec; |
| lcs_prec_todo = NUL; |
| #ifdef FEAT_MBYTE |
| + if (has_mbyte && (*mb_char2cells)(mb_c) > 1) |
| + { |
| + /* Double-width character being overwritten by the "precedes" |
| + * character, need to fill up half the character. */ |
| + c_extra = MB_FILLER_CHAR; |
| + n_extra = 1; |
| + n_attr = 2; |
| + extra_attr = hl_attr(HLF_AT); |
| + } |
| mb_c = c; |
| if (enc_utf8 && (*mb_char2len)(c) > 1) |
| { |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 553, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 32. You don't know what sex three of your closest friends are, because they |
| have neutral nicknames and you never bothered to ask. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |