Patch 8.1.1148
Problem:    CTRL-L with 'incsearch' does not pick up char under cursor.
            (Smylers)
Solution:   Do not compare the position with the cursor position. (Hirohito
            Higashi, closes #3620)
Files:      src/ex_getln.c, src/testdir/test_search.vim


*** ../vim-8.1.1147/src/ex_getln.c      2019-03-30 18:46:57.348077402 +0100
--- src/ex_getln.c      2019-04-11 13:44:00.013994955 +0200
***************
*** 745,783 ****
      if (is_state->did_incsearch)
      {
        curwin->w_cursor = is_state->match_end;
!       if (!EQUAL_POS(curwin->w_cursor, is_state->search_start))
        {
-           *c = gchar_cursor();
- 
            // If 'ignorecase' and 'smartcase' are set and the
            // command line has no uppercase characters, convert
            // the character to lowercase.
            if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff + skiplen))
                *c = MB_TOLOWER(*c);
!           if (*c != NUL)
            {
!               if (*c == firstc || vim_strchr((char_u *)(
!                                  p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL)
                {
!                   // put a backslash before special characters
                    stuffcharReadbuff(*c);
-                   *c = '\\';
-               }
-               // add any composing characters
-               if (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
-               {
-                   int save_c = *c;
- 
-                   while (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
-                   {
-                       curwin->w_cursor.col += mb_char2len(*c);
-                       *c = gchar_cursor();
-                       stuffcharReadbuff(*c);
-                   }
-                   *c = save_c;
                }
!               return FAIL;
            }
        }
      }
      return OK;
--- 745,779 ----
      if (is_state->did_incsearch)
      {
        curwin->w_cursor = is_state->match_end;
!       *c = gchar_cursor();
!       if (*c != NUL)
        {
            // If 'ignorecase' and 'smartcase' are set and the
            // command line has no uppercase characters, convert
            // the character to lowercase.
            if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff + skiplen))
                *c = MB_TOLOWER(*c);
!           if (*c == firstc || vim_strchr((char_u *)(
!                              p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL)
!           {
!               // put a backslash before special characters
!               stuffcharReadbuff(*c);
!               *c = '\\';
!           }
!           // add any composing characters
!           if (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
            {
!               int save_c = *c;
! 
!               while (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
                {
!                   curwin->w_cursor.col += mb_char2len(*c);
!                   *c = gchar_cursor();
                    stuffcharReadbuff(*c);
                }
!               *c = save_c;
            }
+           return FAIL;
        }
      }
      return OK;
*** ../vim-8.1.1147/src/testdir/test_search.vim 2019-02-28 06:24:49.788775847 
+0100
--- src/testdir/test_search.vim 2019-04-11 13:44:53.725735332 +0200
***************
*** 1248,1250 ****
--- 1248,1267 ----
    " This  was also giving an internal error
    call assert_fails('call search(" \\((\\v[[=P=]]){185}+             ")', 
'E871:')
  endfunc
+ 
+ func Test_incsearch_add_char_under_cursor()
+   if !exists('+incsearch')
+     return
+   endif
+   set incsearch
+   new
+   call setline(1, ['find match', 'anything'])
+   1
+   call test_override('char_avail', 1)
+   call feedkeys("fc/m\<C-L>\<C-L>\<C-L>\<C-L>\<C-L>\<CR>", 'tx')
+   call assert_equal('match', @/)
+   call test_override('char_avail', 0)
+ 
+   set incsearch&
+   bwipe!
+ endfunc
*** ../vim-8.1.1147/src/version.c       2019-04-11 13:09:57.790699857 +0200
--- src/version.c       2019-04-11 13:45:43.457370024 +0200
***************
*** 773,774 ****
--- 773,776 ----
  {   /* Add new patch number below this line */
+ /**/
+     1148,
  /**/

-- 
"After a few years of marriage a man can look right at a woman
without seeing her and a woman can see right through a man
without looking at him."
 - Helen Rowland

 /// Bram Moolenaar -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui