diff options
Diffstat (limited to 'data/vim/patches/8.1.1078')
-rw-r--r-- | data/vim/patches/8.1.1078 | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1078 b/data/vim/patches/8.1.1078 new file mode 100644 index 000000000..3390ef63f --- /dev/null +++ b/data/vim/patches/8.1.1078 @@ -0,0 +1,134 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1078 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.1078 +Problem: When 'listchars' is set a composing char on a space is wrong. +Solution: Separate handling a non-breaking space and a space. (Yasuhiro + Matsumoto, closes #4046) +Files: src/screen.c, src/testdir/test_listchars.vim + + +*** ../vim-8.1.1077/src/screen.c 2019-03-29 18:29:28.448854292 +0100 +--- src/screen.c 2019-03-30 15:28:43.077813100 +0100 +*************** +*** 4808,4837 **** + } + #endif + +! /* 'list': change char 160 to lcs_nbsp and space to lcs_space. +! */ +! if (wp->w_p_list +! && (((c == 160 +! || (mb_utf8 && (mb_c == 160 || mb_c == 0x202f))) +! && lcs_nbsp) +! || (c == ' ' && lcs_space && ptr - line <= trailcol))) + { +! c = (c == ' ') ? lcs_space : lcs_nbsp; +! if (area_attr == 0 && search_attr == 0) + { +! n_attr = 1; +! extra_attr = HL_ATTR(HLF_8); +! saved_attr2 = char_attr; /* save current attr */ + } +! mb_c = c; +! if (enc_utf8 && utf_char2len(c) > 1) + { +! mb_utf8 = TRUE; +! u8cc[0] = 0; +! c = 0xc0; + } +- else +- mb_utf8 = FALSE; + } + + if (trailcol != MAXCOL && ptr > line + trailcol && c == ' ') +--- 4808,4841 ---- + } + #endif + +! // 'list': change char 160 to lcs_nbsp and space to lcs_space. +! if (wp->w_p_list) + { +! if ((c == 160 +! || (mb_utf8 && (mb_c == 160 || mb_c == 0x202f))) +! && lcs_nbsp) + { +! c = lcs_nbsp; +! mb_c = c; +! if (enc_utf8 && utf_char2len(c) > 1) +! { +! mb_utf8 = TRUE; +! u8cc[0] = 0; +! c = 0xc0; +! } +! else +! mb_utf8 = FALSE; + } +! else if (c == ' ' && lcs_space && ptr - line <= trailcol) + { +! c = lcs_space; +! if (mb_utf8 == FALSE && area_attr == 0 && search_attr == 0) +! { +! n_attr = 1; +! extra_attr = HL_ATTR(HLF_8); +! saved_attr2 = char_attr; // save current attr +! } + } + } + + if (trailcol != MAXCOL && ptr > line + trailcol && c == ' ') +*** ../vim-8.1.1077/src/testdir/test_listchars.vim 2019-01-31 21:57:15.517462657 +0100 +--- src/testdir/test_listchars.vim 2019-03-30 15:23:31.463867726 +0100 +*************** +*** 113,115 **** +--- 113,138 ---- + enew! + set listchars& ff& + endfunc ++ ++ func Test_listchars_composing() ++ enew! ++ let oldencoding=&encoding ++ set encoding=utf-8 ++ set ff=unix ++ set list ++ ++ set listchars=eol:$,space:_ ++ call append(0, [ ++ \ " \u3099 \u309A" ++ \ ]) ++ let expected = [ ++ \ "_ \u3099^I \u309A$" ++ \ ] ++ redraw! ++ call cursor(1, 1) ++ let got = ScreenLinesUtf8(1, virtcol('$')) ++ bw! ++ call assert_equal(expected, got) ++ let &encoding=oldencoding ++ set listchars& ff& ++ endfunction +*** ../vim-8.1.1077/src/version.c 2019-03-30 14:26:15.268619122 +0100 +--- src/version.c 2019-03-30 15:34:33.791529846 +0100 +*************** +*** 777,778 **** +--- 777,780 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1078, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +158. You get a tuner card so you can watch TV while surfing. + + /// 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 /// |