changeset 8943:47036dcd83a4 v7.4.1757

commit https://github.com/vim/vim/commit/8e42ae5069d4985869e46eaa56900ed19e30f504 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Apr 20 16:39:19 2016 +0200 patch 7.4.1757 Problem: When using complete() it may set 'modified' even though nothing was inserted. Solution: Use Down/Up instead of Next/Previous match. (Shougo, closes https://github.com/vim/vim/issues/745)
author Christian Brabandt <cb@256bit.org>
date Wed, 20 Apr 2016 16:45:05 +0200
parents 7a880d638cf7
children 929a23de381c
files src/edit.c src/version.c
diffstat 2 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/edit.c
+++ b/src/edit.c
@@ -2813,12 +2813,15 @@ set_completion(colnr_T startcol, list_T 
     compl_cont_status = 0;
 
     compl_curr_match = compl_first_match;
-    if (compl_no_insert)
+    if (compl_no_insert || compl_no_select)
+    {
 	ins_complete(K_DOWN, FALSE);
+	if (compl_no_select)
+	    /* Down/Up has no real effect. */
+	    ins_complete(K_UP, FALSE);
+    }
     else
 	ins_complete(Ctrl_N, FALSE);
-    if (compl_no_select)
-	ins_complete(Ctrl_P, FALSE);
 
     /* Lazily show the popup menu, unless we got interrupted. */
     if (!compl_interrupted)
@@ -4969,8 +4972,7 @@ ins_compl_check_keys(int frequency)
 ins_compl_key2dir(int c)
 {
     if (c == Ctrl_P || c == Ctrl_L
-	    || (pum_visible() && (c == K_PAGEUP || c == K_KPAGEUP
-						|| c == K_S_UP || c == K_UP)))
+	    || c == K_PAGEUP || c == K_KPAGEUP || c == K_S_UP || c == K_UP)
 	return BACKWARD;
     return FORWARD;
 }
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1757,
+/**/
     1756,
 /**/
     1755,