]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1112: Inconsistencies in get_next_or_prev_match() v9.1.1112
authorzeertzjq <zeertzjq@outlook.com>
Fri, 14 Feb 2025 16:59:31 +0000 (17:59 +0100)
committerChristian Brabandt <cb@256bit.org>
Fri, 14 Feb 2025 16:59:31 +0000 (17:59 +0100)
Problem:  Inconsistencies in get_next_or_prev_match() (after 9.1.1109).
Solution: Change "file" to "entry" or "match" in comments.  Use the same
          order of branches for PAGEUP and PAGEDOWN (zeertzjq).

closes: #16633

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/cmdexpand.c
src/version.c

index bd9a410ac3612ba5cbcece5fb2417cb354b5e323..f707b1d5866c4c41a82e76c64a16228eedd61a25 100644 (file)
@@ -737,21 +737,22 @@ get_next_or_prev_match(int mode, expand_T *xp)
     int            findex = xp->xp_selected;
     int            ht;
 
-    // When no files found, return NULL
+    // When no matches found, return NULL
     if (xp->xp_numfiles <= 0)
        return NULL;
 
     if (mode == WILD_PREV)
     {
-       // Select last file if at start
+       // Select the last entry if at original text
        if (findex == -1)
            findex = xp->xp_numfiles;
+       // Otherwise select the previous entry
        --findex;
     }
     else if (mode == WILD_NEXT)
     {
-       // Select next file
-       findex = findex + 1;
+       // Select the next entry
+       ++findex;
     }
     else   // WILD_PAGEDOWN or WILD_PAGEUP
     {
@@ -765,7 +766,7 @@ get_next_or_prev_match(int mode, expand_T *xp)
            if (findex == 0)
                // at the first entry, don't select any entries
                findex = -1;
-           else if (findex == -1)
+           else if (findex < 0)
                // no entry is selected. select the last entry
                findex = xp->xp_numfiles - 1;
            else
@@ -774,12 +775,12 @@ get_next_or_prev_match(int mode, expand_T *xp)
        }
        else    // mode == WILD_PAGEDOWN
        {
-           if (findex < 0)
-               // no entry is selected, select the first entry
-               findex = 0;
-           else if (findex >= xp->xp_numfiles - 1)
+           if (findex >= xp->xp_numfiles - 1)
                // at the last entry, don't select any entries
                findex = -1;
+           else if (findex < 0)
+               // no entry is selected, select the first entry
+               findex = 0;
            else
                // go down by the pum height
                findex = MIN(findex + ht, xp->xp_numfiles - 1);
@@ -789,7 +790,7 @@ get_next_or_prev_match(int mode, expand_T *xp)
     // Handle wrapping around
     if (findex < 0 || findex >= xp->xp_numfiles)
     {
-       // If original string exists, return to it when wrapping around
+       // If original text exists, return to it when wrapping around
        if (xp->xp_orig != NULL)
            findex = -1;
        else
@@ -808,7 +809,7 @@ get_next_or_prev_match(int mode, expand_T *xp)
                cmd_showtail);
 
     xp->xp_selected = findex;
-    // Return the original string or the selected match
+    // Return the original text or the selected match
     return vim_strsave(findex == -1 ? xp->xp_orig : xp->xp_files[findex]);
 }
 
index cbd973621ae384f9a78797ee68a812bfa35e9f12..e7efb2142f1518ede99b7b6ef069bab29a21a81d 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1112,
 /**/
     1111,
 /**/