diff src/ex_getln.c @ 16287:a6cffc232b9d v8.1.1148

patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor commit https://github.com/vim/vim/commit/730f48fe3691dc62331f3df23cb947bfc33a5add Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 11 13:45:57 2019 +0200 patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor 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)
author Bram Moolenaar <Bram@vim.org>
date Thu, 11 Apr 2019 14:00:05 +0200
parents cd5c83115ec6
children 5b5c5daf57de
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -745,39 +745,35 @@ may_add_char_to_search(int firstc, int *
     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 (*c != NUL)
 	{
-	    *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)
 	    {
-		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()))
+		// 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()))
 		{
-		    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;
+		    curwin->w_cursor.col += mb_char2len(*c);
+		    *c = gchar_cursor();
+		    stuffcharReadbuff(*c);
 		}
-		return FAIL;
+		*c = save_c;
 	    }
+	    return FAIL;
 	}
     }
     return OK;