]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1126: patch 9.1.1121 used a wrong way to handle enter v9.1.1126
authorglepnir <glephunter@gmail.com>
Thu, 20 Feb 2025 21:09:48 +0000 (22:09 +0100)
committerChristian Brabandt <cb@256bit.org>
Thu, 20 Feb 2025 21:09:48 +0000 (22:09 +0100)
Problem:  patch 9.1.1121 used a wrong way to handle enter
Solution: compl_enter_selects also needs to consider the selected item
          in ins_compl_new_leader() (glepnir)

closes: #16673

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/insexpand.c
src/testdir/test_edit.vim
src/version.c

index f28015602927fb8cfcd6d3b35b21d9a84c1ca492..624165a9bf8703bf6a0665cbe684c2e3a6deacbe 100644 (file)
@@ -2109,7 +2109,7 @@ ins_compl_new_leader(void)
        compl_restarting = FALSE;
     }
 
-    compl_enter_selects = !compl_used_match;
+    compl_enter_selects = !compl_used_match && compl_selected_item != -1;
 
     // Show the popup menu with a different set of matches.
     ins_compl_show_pum();
@@ -2580,10 +2580,6 @@ ins_compl_prep(int c)
 {
     int                retval = FALSE;
     int                prev_mode = ctrl_x_mode;
-    int                handle_enter = FALSE;
-
-    if ((c == CAR || c == NL || c == K_KENTER) && compl_selected_item == -1)
-       handle_enter = TRUE;
 
     // Forget any previous 'special' messages if this is actually
     // a ^X mode key - bar ^R, in which case we wait to see what it gives us.
@@ -2681,14 +2677,7 @@ ins_compl_prep(int c)
        if ((ctrl_x_mode_normal() && c != Ctrl_N && c != Ctrl_P
                                       && c != Ctrl_R && !ins_compl_pum_key(c))
                || ctrl_x_mode == CTRL_X_FINISHED)
-       {
            retval = ins_compl_stop(c, prev_mode, retval);
-           // When it is the Enter key and no selected item, return false, and
-           // continue processing the Enter key to insert a new line in the
-           // edit function.
-           if (retval && handle_enter)
-               retval = FALSE;
-       }
     }
     else if (ctrl_x_mode == CTRL_X_LOCAL_MSG)
        // Trigger the CompleteDone event to give scripts a chance to act
index 9ce8bb28763ebc47924bc4d6abfb98c32e55028f..30a917c4d72ed540e2d7774e5bbaaeba68644705 100644 (file)
@@ -594,7 +594,7 @@ func Test_edit_CTRL_I()
   call assert_equal([include, 'two', ''], getline(1, '$'))
   call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<cr>\<esc>", 'tnix')
   call assert_equal([include, 'three', ''], getline(1, '$'))
-  call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<down>\<C-y>\<esc>", 'tnix')
+  call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<down>\<cr>\<esc>", 'tnix')
   call assert_equal([include, '', ''], getline(1, '$'))
   bw!
 endfunc
@@ -622,7 +622,7 @@ func Test_edit_CTRL_K()
   %d
   call setline(1, 'A')
   call cursor(1, 1)
-  call feedkeys("A\<c-x>\<c-k>\<down>\<down>\<down>\<C-Y>\<esc>", 'tnix')
+  call feedkeys("A\<c-x>\<c-k>\<down>\<down>\<down>\<cr>\<esc>", 'tnix')
   call assert_equal(['A'], getline(1, '$'))
   %d
   call setline(1, 'A')
index 8d044d199947a1ecc88d86d7dd5c693354ec633b..61e2d6b0a567b3a0f0d6e7468e06c473d4ae5890 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1126,
 /**/
     1125,
 /**/