aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-12-29 00:17:46 -0500
committerJustin M. Keyes <justinkz@gmail.com>2014-12-29 23:48:23 -0500
commitbb1be08bae200bbc6b297c2d926fa8565fd42b5c (patch)
tree1ee1961e07d6833cfb6d4867f33f670ae9ded135
parentec615012a702dac26cfb685901c32d5bde6bc4de (diff)
downloadrneovim-bb1be08bae200bbc6b297c2d926fa8565fd42b5c.tar.gz
rneovim-bb1be08bae200bbc6b297c2d926fa8565fd42b5c.tar.bz2
rneovim-bb1be08bae200bbc6b297c2d926fa8565fd42b5c.zip
vim-patch:7.4.487
Problem: ":sign jump" may use another window even though the file is already edited in the current window. Solution: First check if the file is in the current window. (James McCoy) https://code.google.com/p/vim/source/detail?r=v7-4-487
-rw-r--r--src/nvim/version.c2
-rw-r--r--src/nvim/window.c27
2 files changed, 15 insertions, 14 deletions
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 4d0e950b24..f0f1db506d 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -251,7 +251,7 @@ static int included_patches[] = {
//490,
489,
488,
- //487,
+ 487,
486,
485,
//484 NA
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 1a102cf069..ed4a8d8e7a 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -3543,27 +3543,28 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid, int tri
}
-/*
- * Jump to the first open window that contains buffer "buf", if one exists.
- * Returns a pointer to the window found, otherwise NULL.
- */
+/// Jump to the first open window that contains buffer "buf", if one exists.
+/// Returns a pointer to the window found, otherwise NULL.
win_T *buf_jump_open_win(buf_T *buf)
{
- FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
- if (wp->w_buffer == buf) {
- win_enter(wp, false);
- return wp;
+ if (curwin->w_buffer == buf) {
+ win_enter(curwin, false);
+ return curwin;
+ } else {
+ FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
+ if (wp->w_buffer == buf) {
+ win_enter(wp, false);
+ return wp;
+ }
}
}
return NULL;
}
-/*
- * Jump to the first open window in any tab page that contains buffer "buf",
- * if one exists.
- * Returns a pointer to the window found, otherwise NULL.
- */
+/// Jump to the first open window in any tab page that contains buffer "buf",
+/// if one exists.
+/// @return the found window, or NULL.
win_T *buf_jump_open_tab(buf_T *buf)
{