changeset 15148:27ba8d007a86 v8.1.0584

patch 8.1.0584: with search CTRL-L does not pick up composing characters commit https://github.com/vim/vim/commit/5f5e203c92365ac6399de3663637b73bf9fb6dfa Author: Bram Moolenaar <Bram@vim.org> Date: Fri Dec 14 15:47:03 2018 +0100 patch 8.1.0584: with search CTRL-L does not pick up composing characters Problem: With search CTRL-L does not pick up composing characters. Solution: Check for composing characters. (Christian Brabandt, closes https://github.com/vim/vim/issues/3682) [code change was accidentally included in 8.1.0579]
author Bram Moolenaar <Bram@vim.org>
date Fri, 14 Dec 2018 16:00:06 +0100
parents 87e3b7803b1e
children d76c50aabb04
files src/testdir/test_search.vim src/version.c
diffstat 2 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1154,3 +1154,25 @@ func Test_no_last_substitute_pat()
 
   call delete('Xviminfo')
 endfunc
+
+func Test_search_Ctrl_L_combining()
+  " Make sure, that Ctrl-L works correctly with combining characters.
+  " It uses an artificial example of an 'a' with 4 combining chars:
+    " 'a' U+0061 Dec:97 LATIN SMALL LETTER A &#x61; /\%u61\Z "\u0061" 
+    " ' ̀' U+0300 Dec:768 COMBINING GRAVE ACCENT &#x300; /\%u300\Z "\u0300"
+    " ' ́' U+0301 Dec:769 COMBINING ACUTE ACCENT &#x301; /\%u301\Z "\u0301"
+    " ' ̇' U+0307 Dec:775 COMBINING DOT ABOVE &#x307; /\%u307\Z "\u0307"
+    " ' ̣' U+0323 Dec:803 COMBINING DOT BELOW &#x323; /\%u323 "\u0323" 
+  " Those should also appear on the commandline
+  if !has('multi_byte') || !exists('+incsearch')
+    return
+  endif
+  call Cmdline3_prep()
+  1
+  let bufcontent = ['', 'Miạ̀́̇m']
+  call append('$', bufcontent)
+  call feedkeys("/Mi\<c-l>\<c-l>\<cr>", 'tx')
+  call assert_equal(5, line('.'))
+  call assert_equal(bufcontent[1], @/)
+  call Incsearch_cleanup()
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    584,
+/**/
     583,
 /**/
     582,