patch 9.1.1112: Inconsistencies in get_next_or_prev_match() Commit: https://github.com/vim/vim/commit/b6c900be9ce49f688d3a03c2767dedb48e4f23ae Author: zeertzjq <zeert...@outlook.com> Date: Fri Feb 14 17:59:31 2025 +0100
patch 9.1.1112: Inconsistencies in get_next_or_prev_match() 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 <zeert...@outlook.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/cmdexpand.c b/src/cmdexpand.c index bd9a410ac..f707b1d58 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -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]); } diff --git a/src/version.c b/src/version.c index cbd973621..e7efb2142 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1112, /**/ 1111, /**/ -- -- 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 vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1tizHK-008keF-No%40256bit.org.