diff src/window.c @ 6307:1f9577e9ef1b v7.4.487

updated for version 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)
author Bram Moolenaar <bram@vim.org>
date Tue, 21 Oct 2014 20:57:15 +0200
parents 521c49b6de9d
children 383cb9ddb561
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -4407,20 +4407,19 @@ win_enter_ext(wp, undo_sync, curwin_inva
 buf_jump_open_win(buf)
     buf_T	*buf;
 {
+    win_T	*wp = NULL;
+
+    if (curwin->w_buffer == buf)
+	wp = curwin;
 # ifdef FEAT_WINDOWS
-    win_T	*wp;
-
-    for (wp = firstwin; wp != NULL; wp = wp->w_next)
-	if (wp->w_buffer == buf)
-	    break;
+    else
+	for (wp = firstwin; wp != NULL; wp = wp->w_next)
+	    if (wp->w_buffer == buf)
+		break;
     if (wp != NULL)
 	win_enter(wp, FALSE);
+# endif
     return wp;
-# else
-    if (curwin->w_buffer == buf)
-	return curwin;
-    return NULL;
-# endif
 }
 
 /*
@@ -4432,12 +4431,10 @@ buf_jump_open_win(buf)
 buf_jump_open_tab(buf)
     buf_T	*buf;
 {
+    win_T	*wp = buf_jump_open_win(buf);
 # ifdef FEAT_WINDOWS
-    win_T	*wp;
     tabpage_T	*tp;
 
-    /* First try the current tab page. */
-    wp = buf_jump_open_win(buf);
     if (wp != NULL)
 	return wp;
 
@@ -4455,13 +4452,8 @@ buf_jump_open_tab(buf)
 		break;
 	    }
 	}
-
+# endif
     return wp;
-# else
-    if (curwin->w_buffer == buf)
-	return curwin;
-    return NULL;
-# endif
 }
 #endif