To: vim_dev@googlegroups.com Subject: Patch 7.3.553 Fcc: outbox From: Bram Moolenaar 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 *** ../vim-7.3.552/src/screen.c 2012-06-06 19:05:45.000000000 +0200 --- src/screen.c 2012-06-13 17:55:10.000000000 +0200 *************** *** 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) { *** ../vim-7.3.552/src/version.c 2012-06-13 17:28:51.000000000 +0200 --- src/version.c 2012-06-13 17:48:45.000000000 +0200 *************** *** 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 ///